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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ n3 K) D7 \& ]# L1 u) K#include <linux/init.h>" w# k# ~$ l5 a! B& Q' D1 ~" n& A
#include <linux/module.h>/ O' R( ]% {5 F
#include <linux/kernel.h>
, M: K0 S1 F0 O" Y#include <linux/types.h>
6 O3 [& o# S) P7 M6 {0 Q0 ~#include <linux/gpio.h>+ Q9 m4 x; h! ?) I
#include <linux/leds.h>
3 V, b) _3 J: U) _: I' j#include <linux/platform_device.h>
; V" i$ e2 S" k1 s6 L: M4 u. B: J  G% k
#include <asm/mach-types.h>- z0 G" _* M6 k: X" F3 _
#include <asm/mach/arch.h>
/ P5 v* A6 i0 L7 a9 Y#include <mach/da8xx.h>/ G( \. r. `0 w- d/ t6 ^( Y
#include <mach/mux.h>( w, h* g0 J/ t7 v+ q

7 E9 i) J4 |! s$ ]9 S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# l7 m8 N$ V/ p4 U3 r4 ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 x9 L. p) n8 }4 W  d, i& C# h$ c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" _, D7 K2 d* I7 @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 t" p9 B7 V2 c& M7 Y; r
  Y7 E$ x2 Y' U# X' ~% T: O! \
/* assign the tl som board LED-GPIOs*/2 Y2 s0 Y# {4 |, Z& Z
static const short da850_evm_tl_user_led_pins[] = {' _: `8 `5 l1 x# E& f4 J$ Z
        /* These pins are definition at <mach/mux.h> file */4 v" D% v' C1 j  u9 {& X6 ^: K4 }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# \% [$ Q) K- i( U- c, q6 N2 Y+ R        -1
4 k* K6 V' _6 u8 H" b  g# z9 @};
0 G: C& g; L3 r; b  Z8 Q2 F) ^2 F
+ \1 h; C3 T  r* m  b% Fstatic struct gpio_led da850_evm_tl_leds[] = {( E, r2 P& b$ P- h6 Z8 x5 n/ V
        {
5 D6 [% }0 Q; x& V                .active_low = 0,
, A8 v0 X8 ]/ w( b                .gpio = DA850_USER_LED0,
4 t5 V) n3 E: K1 U                .name = "user_led0",5 x" T" a; C2 E4 v$ B6 t: O5 p
                .default_trigger = "default-on",
( r7 A4 u9 s1 j" s" i5 s; l        }," c8 f0 F$ R+ G# c
        {" l% P# q! n6 b; [* p6 D
                .active_low = 0,
9 Y! o& y) @5 u: z; q  H                .gpio = DA850_USER_LED1,, w. S9 u; N& `' H6 F$ Y% q
                .name = "user_led1",
, K, o) T; Y8 u/ }                .default_trigger = "default-on",
' z- e0 s2 m& V  z4 B, U% _3 n        },) F2 V9 r: p; R2 r
        {: ^; A  ~$ s" ?8 Z' c2 M4 Z0 ^
                .active_low = 0,
0 e* f( d8 H$ @( L/ ]+ Y* N                .gpio = DA850_USER_LED2,
) _$ V" w6 A/ T                .name = "user_led2",
4 I/ d9 G0 Z& r5 s& r                .default_trigger = "default-on",3 l5 y6 U3 z. f$ s  M8 ?
        },
  o: i8 v5 y; i3 L- y# Z( c+ C        {% A6 W- O2 c9 V9 H
                .active_low = 0,; D* Q5 `3 t2 e
                .gpio = DA850_USER_LED3,3 D" R9 Y  G% \9 {2 L+ X
                .name = "user_led3",
1 s* b# C  X8 A" t! I9 z                .default_trigger = "default-on",* k1 V# j" l- n- U4 [+ m
        },
  P: T" j3 |1 ?};
2 A. J9 g9 ^1 }% O& Q  b
$ d" B3 r/ m9 L0 k6 c. _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, q& w, f5 k* G1 b( T! r. ?2 n        .leds = da850_evm_tl_leds,
6 r- e6 a0 A1 J1 _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 Q( S. Z3 h+ y: j) H' a! r};
( W; g6 V$ U3 G( Z0 t
, d/ f3 ~$ s. |# v: V+ v1 [static void led_dev_release(struct device *dev)( ]1 `* p" W1 d) K+ C! Y) T5 @1 u
{
2 g' d# H% O6 }" K4 `; `# s) x$ ?2 V};) C3 K, D. g5 u0 K& G* c1 D; j
# W. L; M: e/ O  M
static struct platform_device da850_evm_tl_leds_device = {
" ~: T5 `& f+ V+ ]6 L        .name                = "leds-gpio",) _* D8 l3 I* s/ V
        .id                = 1,
1 O2 s2 i+ g) `# I1 p        .dev = {
, o5 H3 N& J) S! d' G5 t/ a                .platform_data = &da850_evm_tl_leds_pdata,# J. x! m4 p9 u$ w5 t+ L0 a# M
                .release = led_dev_release,9 J8 o# X& j1 p7 A9 n/ ?# u
        }& j7 J  h- @! ]3 x1 ?5 x# H% t
};/ ]. y! N8 c$ ^

7 `% J6 m9 [: @static int __init led_platform_init(void)
; G, S; r3 m, ]9 c! y{
  i& M% R% w5 [4 M# I        int ret;
$ N; S8 \/ d4 L- c3 H#if 0
, p& @/ \2 {6 X9 O) M7 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* ~8 z1 `% F* g5 o# {* ^
        if (ret)( ?' P) A# H, o* Q9 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 H. G( q: Z+ {/ X+ E6 ?
                                "%d\n", ret);
7 ~7 p( d  H! q, |) C7 k. G$ m#endif
5 D6 b; n. m0 T        ret = platform_device_register(&da850_evm_tl_leds_device);
3 M8 z6 u% ]/ h7 N& z- l4 W        if (ret)2 K) P% }4 d1 K5 R% z5 W) D
                pr_warning("Could not register som GPIO expander LEDS");5 q* f# J4 C! o1 o. \' D! I
        else" E1 m9 C$ M7 i  T* ^6 G
                printk(KERN_INFO "LED register sucessful!\n");
4 R' J, J/ o1 ?+ y9 L
( Y2 |2 s) V' q2 C, X        return ret;$ j5 g- H. v9 u8 C* m3 _- ~; I
}
% }5 ^! H) [' j3 i0 F4 j+ x' b$ z6 w2 t+ `7 P) A, I( t
static void __exit led_platform_exit(void)
+ ?5 a" B/ C& t  Q/ @{
& f5 ]' q% h( u' i8 h6 h" `' N        platform_device_unregister(&da850_evm_tl_leds_device);
% y( j3 k0 `/ [: u7 E$ W$ f* e. m
        printk(KERN_INFO "LED unregister!\n");
# o# A  t% e0 n+ O& q}. r$ ~* ^. h2 |# v, N* n* S- F

1 C! {2 c9 @; V3 R4 {$ Z+ ?module_init(led_platform_init);
/ n, D; g7 I$ r! V6 S7 lmodule_exit(led_platform_exit);, Z0 O* W- A8 p2 B5 [4 @
1 C  ]$ Q, c: D1 g
MODULE_DESCRIPTION("Led platform driver");* K# j4 N9 f& g6 E& D! M3 ^$ c
MODULE_AUTHOR("Tronlong");
( ^' L3 G. m: E/ h' f9 H9 B2 _MODULE_LICENSE("GPL");
* C! t" H2 E, F2 {; b5 ]8 U# H" w7 t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 07:08 , Processed in 0.040123 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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