程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 8642|回复: 0
打印 上一主题 下一主题

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( v  d( l! Q0 R- a  v1 d- c9 _6 [1 w#include <linux/init.h>
" p* e' t7 k, W; r  m3 g0 N#include <linux/module.h>& Q( V/ B$ g5 \, ^4 H. j
#include <linux/kernel.h>
1 b/ U8 \9 J: h0 C# A#include <linux/types.h>+ Y5 ], v" k2 [* n0 o: @" L5 m  ]
#include <linux/gpio.h>0 E, Z* Z. x5 f. W9 L9 B! L
#include <linux/leds.h>% [/ q$ m6 L! M/ V4 H' N
#include <linux/platform_device.h>
- f  u% @3 \/ l  F
& p" G8 E+ o9 h1 N#include <asm/mach-types.h>
. \0 _' k6 T# L9 B" i: Q#include <asm/mach/arch.h>8 H. n' d/ f( {$ S
#include <mach/da8xx.h>
% O- Z5 a1 T3 O  L2 i  i#include <mach/mux.h>2 \- f4 H9 y, J! ^5 T; @
5 Y. y) C' C  S: A* O1 a% y) U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): {: h$ `; T% v; R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 N9 h& k4 `$ W3 J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) r" P/ L) `. f+ D( q' e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& n' ?* r: j( V" a
9 G/ ?8 a4 m4 L# l$ W: c- p/* assign the tl som board LED-GPIOs*/* y8 n4 b9 r: H
static const short da850_evm_tl_user_led_pins[] = {3 W! }& R* m4 U4 s1 [1 K3 r
        /* These pins are definition at <mach/mux.h> file */; F# F: V4 P* m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! ?8 r4 L6 k$ w. ~        -1
0 i  m. ^, ?7 ~) L3 l  ^( v};8 `, r# j( B2 G' d& C
( E% R- w. K' d# x
static struct gpio_led da850_evm_tl_leds[] = {
: `3 M5 ?# G) h. M, Z! u        {
/ ?3 Q$ A; V* v4 P                .active_low = 0,- ^: H. T6 p1 d& g
                .gpio = DA850_USER_LED0,* C8 Q: p4 L8 |) K
                .name = "user_led0",
. h6 _+ l/ R3 Y# r+ x                .default_trigger = "default-on",
- w) _1 B* T1 }5 h! F* s7 k2 ~        },
' d; C6 z0 I3 I5 z0 {        {" D; X2 a- m/ k  R. l/ X! M
                .active_low = 0,
! J% R* Q8 y* d9 `; ?, [6 U                .gpio = DA850_USER_LED1,$ }: X' h/ |- e6 Y
                .name = "user_led1",
( \% b: Q/ J  u# r6 M                .default_trigger = "default-on",* j; Q% F: j( `+ [, O+ m
        },
3 a0 _+ B7 b) I" s3 S        {1 s! D5 o4 l2 K" H& ?+ n# }$ B
                .active_low = 0,
3 v# f2 X* F# l, [2 q  X                .gpio = DA850_USER_LED2,
% A' V) u+ u4 W7 N2 e                .name = "user_led2",
  W. F& U9 z' L$ U                .default_trigger = "default-on",# f: K9 X; ^, @( Z7 w1 e: I
        },
( E/ j' \' i! F' q& z5 b; V, X1 Y        {! V; V' |1 }: v+ _
                .active_low = 0,
- J- e  I& c2 a* b) Z                .gpio = DA850_USER_LED3,/ ^) ~" x5 S, J# X$ O. W
                .name = "user_led3"," Y+ f8 R: N- W
                .default_trigger = "default-on",
& t  d6 j4 j3 _+ w( [        },
# C3 T9 u/ q1 N  ]# I& p( @. W* A};
. ^- u- g0 t/ W2 `: Q
/ V3 ^# |; L5 _. E8 C' ystatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 l* n5 |0 B9 s! w- D  b  u
        .leds = da850_evm_tl_leds,: [+ \0 f+ c" K3 S! y2 p+ \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: x. \3 e. L" P2 i; |6 a& E  Z
};
' s( h, _: w$ ~6 ?5 M+ f" s1 w# y, X* B+ {' b! y1 @
static void led_dev_release(struct device *dev)+ {7 K( Q8 v. v1 n* N: |$ C2 ?
{( P+ Q8 B/ `% y# ^. Z
};
% `6 a2 {8 Z$ W, ?) o3 k+ w  F, p+ u0 K4 y. ^% q1 }6 g. O( A0 J: b
static struct platform_device da850_evm_tl_leds_device = {3 ?$ Y6 i! V9 z7 |* z7 k0 D+ f+ }
        .name                = "leds-gpio",: U, u- t1 ?# K" {  T. {+ Z! A8 R( X
        .id                = 1,
, m/ q' D  O, Q+ n        .dev = {
2 X+ V& I0 r9 Z3 W: T5 H                .platform_data = &da850_evm_tl_leds_pdata,
% k$ z: L( P+ a                .release = led_dev_release,
3 `* r# w0 t" d( g        }- ?4 `4 r/ Q/ J7 J% a' a2 K7 j
};  g1 D4 X% f6 u* `; x7 {2 Q
! W5 H6 @* T  c
static int __init led_platform_init(void)
  {" N" z* B# m- u4 M8 O4 t{
7 W  j" g# M* @, R2 s" P, Z        int ret;: B& g' o# n# x1 N1 N% [0 Q
#if 03 ]+ @6 T! x+ X* D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 H( _. j& h4 w4 V# h% l2 D
        if (ret)
: _. r; m& T9 c5 }. @" Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# g& _0 D3 A. j! d/ a                                "%d\n", ret);
' O4 g2 `- x( g3 ^$ C#endif
) {0 S+ u) F( \  q        ret = platform_device_register(&da850_evm_tl_leds_device);
8 R8 j3 z' \% n7 C7 P  k        if (ret)
$ w: [$ D. B) P9 I( [: M" y3 e                pr_warning("Could not register som GPIO expander LEDS");' R; u+ _% G5 g1 t& U1 _4 P+ y
        else/ O. L3 L! T% H+ k% `$ m
                printk(KERN_INFO "LED register sucessful!\n");' q/ d( h, r0 C+ o+ Q

2 J/ z6 w' h8 l7 e9 c* d        return ret;
3 d4 `" o6 G" E% z6 c+ w* B}
6 i. W  h$ {2 j
  ^! L3 F7 }3 f5 s) G9 T, t5 T8 Z7 N3 Fstatic void __exit led_platform_exit(void)
! }) a9 c" ?% C& y% H  S. G{
5 v# N5 h9 g7 C# j% K. F        platform_device_unregister(&da850_evm_tl_leds_device);
: ?  k' N# t7 Z; e- b4 [" R( _8 ?8 \( E  Z
        printk(KERN_INFO "LED unregister!\n");. y: O" ~6 x) l8 O0 i4 }# t" ]
}
' r; v* d- }! j/ s  w7 u7 c
4 ^6 Q" U0 e4 b; R4 [2 P3 N0 qmodule_init(led_platform_init);, z  e) }0 |& Q5 T
module_exit(led_platform_exit);
5 k# ^# z3 R6 ]( H7 Y: s, C' a, T, p' h
MODULE_DESCRIPTION("Led platform driver");
! |1 `+ S" d- ~* Q& x- y# iMODULE_AUTHOR("Tronlong");
: u) _+ r% c8 y" b# H) `# w8 pMODULE_LICENSE("GPL");+ \) k+ y5 _: N8 r! ^3 I

, \8 n3 u3 `, D' g) P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

点击跳转“创龙科技服务通”

QQ|手机版|小黑屋|嵌入式开发者社区 ( 粤ICP备15055271号

GMT+8, 2026-1-30 09:33 , Processed in 0.044737 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

快速回复 返回顶部 返回列表