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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 ]* ^8 P$ j4 n
#include <linux/init.h>4 O0 `$ R" p! I+ @" O
#include <linux/module.h>) a  h' ~' W! g; C0 G/ n' r
#include <linux/kernel.h>$ B7 m  H) M& \; g
#include <linux/types.h>
2 y9 T1 c+ D3 F, [- q0 [#include <linux/gpio.h>
( D4 T: R) p+ g1 Y#include <linux/leds.h>" X2 r+ T: P) l3 B5 L0 j
#include <linux/platform_device.h>% k2 U! l% U4 O2 c  B2 j$ t& ]$ ~/ M

8 T6 H; d& Q8 W#include <asm/mach-types.h>$ n! U! K0 |7 \$ }6 q3 ~" y% E
#include <asm/mach/arch.h>
; X+ x: j6 |. g$ T1 g#include <mach/da8xx.h>+ x+ C6 L# W$ J/ d
#include <mach/mux.h>* G2 F  b4 r1 E! F& }* ?

/ {/ {% k; F& {. \8 M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 R2 n. z! V. ]) P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! F& f2 i# J0 J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 D# o8 N; s( G) _#define DA850_USER_LED3        GPIO_TO_PIN(0, 2), _0 }" r: x2 h  x
% p+ n, ?, E( n0 s$ o
/* assign the tl som board LED-GPIOs*/9 L3 U& A  j# x% s8 A
static const short da850_evm_tl_user_led_pins[] = {6 e! i0 P) R5 T# P2 N/ ~3 X6 {) O
        /* These pins are definition at <mach/mux.h> file */
* h7 q" Q% L& j6 u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% K6 R  p% \; Q" @' p% K
        -1, J$ B* ^2 k2 [( M  S
};
9 R; ?4 B) a0 i" m, m
: g( z' P* Z! h: tstatic struct gpio_led da850_evm_tl_leds[] = {4 Q3 p' E" H' T& Q* F
        {
0 D5 E1 f! O" \# J                .active_low = 0,
/ {9 k: I) J; ^1 l3 V3 }3 g                .gpio = DA850_USER_LED0,
3 a( N4 y- V, }7 a" b9 I                .name = "user_led0",
) M& e5 E0 }3 t4 ?. f3 Z% w0 S                .default_trigger = "default-on",
9 b& @7 W; ]( f' V/ M) _        },
0 e9 W0 R2 A6 u2 }        {
- c; O, M: B/ ]1 T1 B% q0 d+ W) L                .active_low = 0,- X  l( c8 `* R% [% B$ ~
                .gpio = DA850_USER_LED1,
5 U$ N! a  C# j- m9 t2 f, d0 V4 l                .name = "user_led1",: _. O" c7 J6 {2 d& j
                .default_trigger = "default-on",
/ p$ X' c2 B! S        },
" k7 J3 S  X  N4 J3 O( \& i        {
( `, Q& Q9 Y! I% M, s, d                .active_low = 0,4 b* r0 D" C0 J  Z# [) H
                .gpio = DA850_USER_LED2,4 k7 W0 o7 ~$ y2 s* _/ ?; t
                .name = "user_led2",( B' g% i  s& H
                .default_trigger = "default-on",0 I* E& u. H$ R  u8 F6 C
        },
7 s4 @. j% f8 t# X' a8 f        {. l' F5 C: B3 K/ f6 g( U  V; {
                .active_low = 0,
- l, Z& G3 c* L! x+ S                .gpio = DA850_USER_LED3,
5 e! W  r. B$ P% u/ N5 s                .name = "user_led3",
, H9 t0 l9 @; K                .default_trigger = "default-on",
7 [9 H' H$ ^2 I  ?1 g7 i        },
* z! B  n$ O8 T};  i" j7 q8 S7 K9 c

6 q2 i# l! ^4 W2 ^' x% [% Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 o4 E0 d1 L" g
        .leds = da850_evm_tl_leds,
/ i/ z( {0 c! w, w, ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& ], h; U, T8 `  C};( G7 F( }1 ?0 W8 v

& _9 @, [) M. q3 G. y4 m7 ystatic void led_dev_release(struct device *dev)# m1 w' M# e! P& l- T5 W1 Q: D
{1 f" a7 A2 J9 L8 I$ u4 a' z
};  @, e8 Z3 l' [7 H

' d7 g/ E/ [: \3 \" b% ?static struct platform_device da850_evm_tl_leds_device = {
) q) r' z& o% B( U- Y9 O0 q; ~        .name                = "leds-gpio",1 s/ l6 P4 K/ O- N0 ?
        .id                = 1,
! U5 L2 P  F) q5 W  e* A+ j  e        .dev = {1 J7 S1 j# Z1 Q2 C4 v( ]6 Q
                .platform_data = &da850_evm_tl_leds_pdata,* I4 s$ |1 O2 n, N
                .release = led_dev_release,1 b9 ]! v+ t- I$ k0 \6 D- H
        }# Q0 `# a# G% w! M$ `( R, Z
};
1 Y1 }  @. @) ]) ]  u: p7 I/ v, b7 m6 {6 _* z4 D
static int __init led_platform_init(void). i; d" o; n. a, A
{
( `) y1 T+ _3 \! \: e! {4 G: V+ v        int ret;
* X1 c" ]3 L0 m& o1 m+ r& q#if 0& Q4 `2 U; h- t' F& m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* i+ }! n' N7 W% a7 `3 \/ {
        if (ret)
8 e, r: ?' z+ V  a& y8 ~( l% ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". w! ~$ _# D2 `- D
                                "%d\n", ret);
' B/ g+ B% g( k; B#endif- G6 E' @* i' {' Z* r
        ret = platform_device_register(&da850_evm_tl_leds_device);. i3 b5 h6 W2 B2 n1 H$ a
        if (ret)
: k$ k7 a! R0 {+ t                pr_warning("Could not register som GPIO expander LEDS");& q! L, i! n1 `, ?9 j( q
        else+ v9 E; M2 H. H0 w1 S6 j. U
                printk(KERN_INFO "LED register sucessful!\n");
6 @$ S; g$ p* G9 a) x6 j
- T) {7 X% j- k) w        return ret;9 M1 H/ ?  t3 L/ T# W' I" [
}
( w: n/ c7 ]; }( f; Y% f) X$ L4 ]/ N2 v' s, |- W6 G
static void __exit led_platform_exit(void)
5 d3 U8 c3 ~& [& Y1 U5 Y{. i7 |6 u3 N, k+ G
        platform_device_unregister(&da850_evm_tl_leds_device);1 i% ?: w  `0 s

* F2 `; r% o4 B6 ^        printk(KERN_INFO "LED unregister!\n");) K3 w" J( E' t: j5 ?$ _
}
- w2 m. o: b  ]0 g  G8 Z
. T& p- r7 `& ?* o3 Z& U1 l9 Z, P! zmodule_init(led_platform_init);
# ^$ y. c1 N  L) f% Wmodule_exit(led_platform_exit);
: q' ?  |! m8 [( R2 T; Z. Q2 p7 r0 G
+ K$ s3 A/ C  A2 d) z4 M9 v" iMODULE_DESCRIPTION("Led platform driver");
: m; |7 W$ |5 l+ v# T$ Z5 rMODULE_AUTHOR("Tronlong");, n/ G4 e* y+ N3 d- U' y
MODULE_LICENSE("GPL");
, `8 b3 r& a- O! w
+ ^1 q+ v4 w# A! r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 14:38 , Processed in 0.038494 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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