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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) j/ E& |4 O/ A$ g1 H
#include <linux/init.h>6 a+ u" F, t% X' Z! P6 Y& \4 Q
#include <linux/module.h>
. \! c" A4 J& q! {  Q# o2 X- K#include <linux/kernel.h>
8 i% H. i( [- R# U: h& N+ o, I#include <linux/types.h>, F5 p7 k5 H* E3 C
#include <linux/gpio.h>8 C5 I6 Q! W% e
#include <linux/leds.h>- [) q7 [- k  B
#include <linux/platform_device.h>, q" I6 s- j1 p% K+ _0 y8 M

3 J. e8 ^+ W  z  P  H#include <asm/mach-types.h>
. x7 }: i8 ?6 Q6 \3 G( W#include <asm/mach/arch.h>
+ a3 E/ J2 x1 V6 \#include <mach/da8xx.h>$ D- o" ?8 ?4 }1 k8 M! F# a
#include <mach/mux.h>
9 R2 N7 g0 A' R3 e
& H9 {1 l: C: J7 q6 M) }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" `6 q1 z  e: T+ i3 \  n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 z7 W# |3 j$ H* t* T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( L; R' T1 z6 ?" L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ ~* Q: q, z8 }
5 e, j5 |' h4 j' K5 d% m+ p
/* assign the tl som board LED-GPIOs*/
4 n% O) U+ Z, Pstatic const short da850_evm_tl_user_led_pins[] = {+ M% R4 ]( {; E1 Y3 ^# i
        /* These pins are definition at <mach/mux.h> file */
+ |/ A" y6 M& ?5 l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- J5 O- d3 C4 ]        -1
! ~% Y+ F) @' r* K3 T};/ f7 p6 m+ |# \6 ]3 J: s! j9 i

- u2 p) e% m9 `: _  x/ k; O- Ustatic struct gpio_led da850_evm_tl_leds[] = {
9 M' g; I" c- Q8 u6 x: G  J9 i; Y        {
+ Z  f3 f6 u6 P) s- U( Y                .active_low = 0,
# [/ e, J! \3 h+ y6 g5 E( A! s* Z                .gpio = DA850_USER_LED0,
9 F2 ^0 S5 W8 C' X                .name = "user_led0",6 N2 u3 K& o: H3 b- L' _* ~
                .default_trigger = "default-on",
1 }$ q5 {+ \+ {; V3 e        },
3 v" Y# o% V5 B0 ?        {
- @, v5 \( V) _                .active_low = 0,+ P- `/ s/ X; @
                .gpio = DA850_USER_LED1,
0 k  T, F" y. g! y1 y7 @: S                .name = "user_led1",
: n+ w% }7 u  S- b/ m+ N7 ?                .default_trigger = "default-on",/ \4 h1 k& n. n7 u# ?0 Z" w
        },. J3 c) U* t' S' s1 X: d9 x
        {! q8 V9 _! i- I9 a
                .active_low = 0,9 }1 s0 [8 P+ @& I) |
                .gpio = DA850_USER_LED2,
# v2 m( d4 p8 y9 n1 F% T                .name = "user_led2",3 u* {, @8 B" f  ^# W( h, V3 y
                .default_trigger = "default-on",: m( {" n* Y  D. O6 f: D" y8 S6 i' H
        },
3 i0 F/ Z  t/ G) @        {
" }& R& z7 ?/ C- _5 F! X                .active_low = 0,$ u3 e0 c* X; Q' ~' c7 L
                .gpio = DA850_USER_LED3,
6 z. v7 }7 L# u- D6 L) Y                .name = "user_led3",
' m3 _& y+ \+ B; X6 L; {' `; b                .default_trigger = "default-on",
& S& q, G8 z' H; B        },
" ^$ _8 Q+ ~" [+ h% J5 G};, i7 _/ Q, S* {( v$ Z  P

1 O( W8 O' ]6 vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 \5 V2 b( i" H$ v( R6 O. P: z
        .leds = da850_evm_tl_leds,
$ {) s4 B' {3 b2 w3 W        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& y+ m& F, ]" j
};8 c8 b. L% e, W, n7 j

0 o. ?) U5 g& s& s9 ?# r" S/ xstatic void led_dev_release(struct device *dev)
9 b9 L  N) v6 `7 n{
6 Q9 c8 l3 _3 f+ t  ~};
$ ?  p. a* p" X5 ]% t& W' _1 q' J; T& ~% \. I3 |. C% r
static struct platform_device da850_evm_tl_leds_device = {& |( ~  }# C: T$ _) c, S
        .name                = "leds-gpio",
" w/ F: g  p; T        .id                = 1,
* K/ h) Z" C# W1 y        .dev = {1 w  ]. c2 q. T: X* Z  p
                .platform_data = &da850_evm_tl_leds_pdata,% p6 ~3 |- M) K; s
                .release = led_dev_release,
- m: C6 X0 J: n& B6 s0 w7 B9 [        }
- h# C- y" w. u3 |};. q1 J- i/ @6 ~% N

, E& N, D& B9 S! O$ \" i, Nstatic int __init led_platform_init(void)+ r! X2 p+ |( f) p
{
% \& J# M+ u/ ]( ~' N/ R        int ret;
# ^* v1 l$ X. Z: ^+ k  C2 n) t' h#if 0, t4 ]! T! K: ]. \0 H0 ]" P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) U7 P; ^' l* Y4 `3 ]$ [
        if (ret)8 `( k. g- s9 ~2 N) ^
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ a% a) F& D. W) ^+ V1 s( F2 _) F                                "%d\n", ret);
/ w0 t9 d5 R* u; ?) o2 G' A( N6 g1 \#endif
1 G* |+ q+ X5 G1 N! i4 D7 b        ret = platform_device_register(&da850_evm_tl_leds_device);2 A+ ^# H- e! _6 H6 e2 O9 F. ~4 O$ ^
        if (ret)
; [9 N7 b# [7 M$ L" D! ~% q                pr_warning("Could not register som GPIO expander LEDS");% x7 Y! q( M( X0 b) e" f! K
        else8 X. t* }% n: g3 ?* P
                printk(KERN_INFO "LED register sucessful!\n");
; S$ e! ]+ `% ?! D3 `  C0 T( H1 R  Q! d: l: W
        return ret;  o8 S9 U) u  M& ~
}
3 b0 P  c  U1 D2 {' ~* P/ @0 b" u4 T6 j+ k! P0 ^3 S
static void __exit led_platform_exit(void)
$ B  ]% X' D) R) c8 X{
) `$ D$ b6 U: y% o- M) a        platform_device_unregister(&da850_evm_tl_leds_device);% [! ~' o; m% o. u9 ~

; e+ d5 G. ~! }( h( P% q4 Q) p        printk(KERN_INFO "LED unregister!\n");+ ?" H4 {# p0 }2 @  d; X+ y
}
" \# a% B" C, J9 c
9 Z' G9 D! E  e" R) d9 P1 mmodule_init(led_platform_init);
' a% t' s: A: [4 D0 G9 j. Xmodule_exit(led_platform_exit);( i9 _- _5 }4 c0 x  I
2 |' S! t& y- c1 I0 B2 `
MODULE_DESCRIPTION("Led platform driver");
3 H+ o0 [5 k) J+ Y/ f8 hMODULE_AUTHOR("Tronlong");
% w; a! g( s5 ^. C1 HMODULE_LICENSE("GPL");
6 A' u% n6 r4 `' t1 J9 N7 R, e: H5 B( \4 e; x. w, x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-14 22:02 , Processed in 0.047743 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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