程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 H$ E0 ^( V) \0 w8 U' r* D0 R( o
#include <linux/init.h>  w( T/ x$ N$ F- w& F% ^( p, e# u
#include <linux/module.h>  ^: M: B6 ^5 @7 v5 V
#include <linux/kernel.h>
% j2 c- i0 l7 O5 w4 J3 V#include <linux/types.h>1 i" a) \% A3 \1 k# t
#include <linux/gpio.h>' a. n$ K+ V6 o
#include <linux/leds.h>& N9 ], F/ v7 }. U- j. I
#include <linux/platform_device.h>8 k, X9 B! H5 Q: Q+ Q; o8 Q( k$ ]( Y
$ ?: k% Q8 I. p# g
#include <asm/mach-types.h>5 `) A6 r: a5 M$ v( k
#include <asm/mach/arch.h>
  E% B6 T' n$ e) d' f& i. A' a#include <mach/da8xx.h>
, e& S7 N. U' d% ?2 ~2 o) W#include <mach/mux.h>
2 T: K  o. l+ m/ m2 K! z) X- j$ O6 W) _5 e2 Y% r4 q( h8 `
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" w9 b, j# c, P6 q- W  S" _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 E& i. V8 M# z3 R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 Q6 r# D( p9 O8 P# q2 V: Q' t#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" @6 W1 a$ U7 |' I  M: ~
: b2 C9 {3 i) M! H; Z/ d) X/* assign the tl som board LED-GPIOs*/
9 C! c' f( @" Lstatic const short da850_evm_tl_user_led_pins[] = {
9 x$ Y4 T4 R# \) U2 w% n        /* These pins are definition at <mach/mux.h> file */
! E7 |6 a7 Y2 n* U. `9 F! l9 }7 X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 k+ J8 x# b# t5 b! [& t8 A0 @, j        -1
% ^% _  T. o. o6 o};
. G3 s( x& ^  ~) `, N
' X6 x, ?* a0 estatic struct gpio_led da850_evm_tl_leds[] = {. A8 V" L" N" ?6 d+ m
        {
- q1 B7 L2 I4 f9 b6 o                .active_low = 0,5 g  ]+ b# g+ v1 o/ K* @
                .gpio = DA850_USER_LED0,1 l7 S% |% Y  v- Y7 h
                .name = "user_led0",
3 t: A7 c* _6 b( e8 q- G                .default_trigger = "default-on",
! T0 d2 P; T& X. c        },
& ?9 T$ W& p1 h5 k! I5 i2 e% T        {3 a+ i9 V% b3 x5 Z& E
                .active_low = 0,
$ m( N# a" C1 N! W+ @; ?, i' c% t                .gpio = DA850_USER_LED1,% z% A$ J' D+ p3 s9 Z7 Q
                .name = "user_led1",
7 @' N5 _/ C/ u  O) M2 h                .default_trigger = "default-on",
. ~/ O- a+ |% Z# u; P        },! F4 u  n9 L* S
        {. O- [7 T9 H5 |- c" O
                .active_low = 0,# M/ ~/ N! r2 }1 m* V
                .gpio = DA850_USER_LED2,& ~. S% y7 e$ L  w+ z
                .name = "user_led2",3 h' W% R3 H) {0 M5 _
                .default_trigger = "default-on",
3 _. Y* K, ?* _        },. @$ l5 F% T- C, F" ^7 g/ ?
        {. h% A: a7 p4 F3 G. y
                .active_low = 0,% Q9 |( ?( a+ j- A
                .gpio = DA850_USER_LED3,8 E# V& D( i6 ]0 M" j4 R( w/ A/ i+ B
                .name = "user_led3",
' x$ A6 g" r4 ~                .default_trigger = "default-on"," S: Y: ^1 D# G
        },
6 }; _7 U3 m6 |* D};3 H0 e1 ?/ ~: S" c  h) T" h
+ j. |% e; @6 u, i) F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
# `# X: H  f* R2 r2 ^, Q        .leds = da850_evm_tl_leds,$ S9 B' v( _5 ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 o2 f" x7 d/ w5 L: S: W: \0 L4 b' o
};" q* A/ c" p$ b9 I5 I, |
1 Y3 I# B3 m* e6 G: A, \+ W
static void led_dev_release(struct device *dev)" J, G* l5 m( N" @
{
/ Q1 N; s! `, L' y};
( H0 t) @+ b/ N( _+ R, g
/ ]( M0 A$ \5 r5 L; |' Y3 ]  y) astatic struct platform_device da850_evm_tl_leds_device = {
3 ?0 \! Z2 f  C  V+ y        .name                = "leds-gpio",
7 x" S6 \1 T" D/ J$ r! ^        .id                = 1,  U$ x2 w- V2 ^5 D
        .dev = {
' D- d! |% W- b' R6 ]+ `' M                .platform_data = &da850_evm_tl_leds_pdata,
: H5 Q- y$ ~2 p                .release = led_dev_release,% y( i% B$ v/ |" `8 B
        }
3 \/ z: T/ r: w( S& {4 @( d, z" v};" V! r0 s) ^! r: E; S; m- t8 F

; \; H* a. @( _2 \0 ^static int __init led_platform_init(void)7 C! R+ I8 h2 ~( w
{/ U. O0 B$ b' O8 E7 u! ?+ P. _
        int ret;
/ M, B6 Q$ ?! I$ }: U6 [  J#if 0% `/ k7 @- j  V' p; }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' o" N" p# `/ {% U5 q+ L2 `: @        if (ret)
2 D: p0 n7 j" b. h9 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 [! d) P$ d' q( J6 m, b' _! L5 n                                "%d\n", ret);; w8 q( G7 N: G$ N) l. `! T* D# A! Y+ z5 y
#endif
+ g  k3 a9 }% [. }        ret = platform_device_register(&da850_evm_tl_leds_device);, A0 C4 s8 `+ r7 x* K
        if (ret)3 E/ F1 g0 Z. x1 d( z7 r
                pr_warning("Could not register som GPIO expander LEDS");
2 I. e* M" V6 _1 _. ~        else
. b0 y2 Q: U' ~  g  Z                printk(KERN_INFO "LED register sucessful!\n");
7 a* G+ ^) K' I1 w
' W% p' ~' K; D( J* c        return ret;* |0 o& i9 }3 }' ^4 L
}1 v5 i! E6 |8 D- f

2 c: B' a$ L( @$ gstatic void __exit led_platform_exit(void)6 N  m; j6 V- o8 t; @
{& m- T# j. W5 c* ~! {* w: x5 @* o
        platform_device_unregister(&da850_evm_tl_leds_device);) |- Y. j% c5 E  g5 X. \3 ^
) ]7 [2 |8 X$ I) t9 p
        printk(KERN_INFO "LED unregister!\n");7 J' B8 ^9 u- S- o4 E
}# j7 t  }/ a9 \) l" z7 c
: u: r3 U# _* A# M  Y
module_init(led_platform_init);
% ?8 ?# V% j" G& {2 amodule_exit(led_platform_exit);
7 u/ w8 D! @% m( p5 H& t# _+ J$ t0 P. o% j% o1 P1 w
MODULE_DESCRIPTION("Led platform driver");
) N3 F1 L* z3 u( X- IMODULE_AUTHOR("Tronlong");# m9 n& X3 A  E) A5 z& @+ ^
MODULE_LICENSE("GPL");
5 T0 J; c& ~$ X# j
, Q. m9 I6 n; R3 |. k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-8 08:36 , Processed in 0.036333 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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