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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 H1 G& A$ t8 w#include <linux/init.h>
. o7 @7 i' C( V$ u9 M0 Y#include <linux/module.h>$ _( R! u7 [0 f; j2 _8 S, T0 {% O
#include <linux/kernel.h>  G; c9 g; Y1 {2 d7 e' R
#include <linux/types.h>
) x! j; ^: o" B) A#include <linux/gpio.h>
( d0 B  I" b5 X5 K  v7 v#include <linux/leds.h>; d& b4 L7 j. N) R; }  H+ G) [5 ]
#include <linux/platform_device.h>( u4 l7 L4 L8 S( O% r  W: T2 T

8 h5 F. t, L& }/ h#include <asm/mach-types.h>1 D0 O$ I( N4 T3 i5 P3 {8 {+ D
#include <asm/mach/arch.h>
. ]" \# g7 U3 I4 V) n% y% o/ B8 z#include <mach/da8xx.h>3 W, k3 ^7 Q0 V5 n$ C9 W
#include <mach/mux.h>
: x1 s7 b$ l; u0 ^+ J
4 x. B4 N  ]* D% E2 Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ g  f! K# N$ [, g7 Z9 |* N/ |& f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 }% U) A3 x  e1 y! m#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): @" |. ~. a2 k- F! y/ ~/ E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 _' P9 ^  k# {! I/ e+ z
# G* |3 ]* s9 W4 b) j) ?/* assign the tl som board LED-GPIOs*/* S% ?+ j. `, I& y) H
static const short da850_evm_tl_user_led_pins[] = {
8 ], z; [7 L# J6 Q        /* These pins are definition at <mach/mux.h> file */
5 O. [9 y& C, z) y  x  K        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  T, c$ _3 |/ R6 t# A
        -1! n, J' `0 X$ R# \. g7 R
};; J2 }+ }: Z& c# {( T" A8 c

2 c0 S# B- X; S6 x% K; |. Gstatic struct gpio_led da850_evm_tl_leds[] = {
) {" @+ A. _& i, J  R2 P5 C9 g        {
# E! Y# A# F8 H                .active_low = 0,
" _. b9 \/ J. t( A: N9 f) a( W. }                .gpio = DA850_USER_LED0,/ |$ b! g3 d' ~5 a2 L2 e5 a+ I
                .name = "user_led0",, h3 b" ?7 \. ~
                .default_trigger = "default-on",/ C+ b3 x1 n0 D
        },
9 i* Y5 G& H$ t        {, y$ L) W3 ^# e$ J( G
                .active_low = 0,4 u5 p" O# V0 ]1 K' {. i1 I, q
                .gpio = DA850_USER_LED1,
6 x5 u' Y( n2 S' l% ?                .name = "user_led1",9 d7 e  `; v  m* ~4 L0 N0 C) L% I
                .default_trigger = "default-on",
4 ~, X0 x# z/ u" T2 Y6 q+ V        },/ Z0 O* i4 F& Z; L) b+ N, D& G
        {* L# r9 Z2 h' I9 A  g! }
                .active_low = 0,3 R2 X; A+ ]. }6 R$ Q% J( d+ b
                .gpio = DA850_USER_LED2,
. X7 q% K: q7 d: h: T, X( t                .name = "user_led2",
8 U2 j3 e9 J0 b  L' r                .default_trigger = "default-on",
1 o. V( ^8 f, \' `- o8 R        },) V4 W& Q9 g" A/ b* o0 b
        {
1 U. G3 B5 M  `, R- i8 y( c                .active_low = 0,- \* D9 }9 m3 q3 j  e$ X8 x0 y3 K
                .gpio = DA850_USER_LED3,7 v) W9 v. y# H# D+ ?* W' O3 ?1 P
                .name = "user_led3",, H" P& R! I9 o6 C* m) f% M- l
                .default_trigger = "default-on",
, A- I* A( _) ~5 x        },
$ D( |$ S0 E9 [5 K9 {};
' W9 W7 W) A! [" p, n* |1 C
) q( f5 P- o/ d$ J4 Jstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! f# r1 @1 f4 N. D        .leds = da850_evm_tl_leds,
0 k9 i# G$ |3 e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* w6 [, K. C# S  V
};
) M* W4 S$ {3 T& r8 L$ o* o+ [) N. H6 d# H  R! _# r0 j
static void led_dev_release(struct device *dev)& f# _) P5 U& Q$ I1 y
{
& \( ?/ g& J; |9 |4 g0 w+ g- t7 s};# I; R5 S2 u& M8 x- S, o2 c
0 k2 C( p; H) U$ s* g7 e
static struct platform_device da850_evm_tl_leds_device = {
' n1 w  \, `. X0 h  l. ^2 q$ B        .name                = "leds-gpio",% M1 j- n' f9 U" \
        .id                = 1," J4 k  r: ~& n
        .dev = {
  B: C( N6 o) ~. j) [7 ~* D. k, S                .platform_data = &da850_evm_tl_leds_pdata,( n0 o4 C8 d& N: Q1 D3 q
                .release = led_dev_release," d% |' i4 a9 E) O$ ^$ x: T0 o
        }
2 M2 c; B, M% M};& X" z. D9 S  Y9 a2 B6 x) g

- @* e8 n0 m  C( P. E: \: X4 astatic int __init led_platform_init(void)! f, R- C; ^, H( Y, u: H
{
. G& l+ U' T" w; |        int ret;
2 ~, `) x+ m" o" E7 @, T4 `#if 0$ E, \+ ?; D0 s( q6 w; r
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. ]5 A& @# b) R3 s" `) V0 |/ N& ?        if (ret)4 v, e' [! f! _8 K  ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :", ^7 `" l; k0 k" B! u% R
                                "%d\n", ret);5 A& l9 t+ R% `6 F0 ~
#endif4 o$ f2 L! A  P
        ret = platform_device_register(&da850_evm_tl_leds_device);; b" P- Z" [4 b8 F
        if (ret)
2 Y; J+ [7 B9 e                pr_warning("Could not register som GPIO expander LEDS");
- F! n: s$ m. s' m/ i9 R& v        else
' n9 k9 W- t3 [0 F                printk(KERN_INFO "LED register sucessful!\n");
8 c$ o7 I9 ?: z  v. Q" H
8 t0 n. a: Z2 O  }0 O        return ret;
$ {% t0 H% s4 k, j- @# m}
9 q! G# w( M1 Y  L& \3 a. L6 v+ e  o3 n+ l7 C0 W8 _- m/ ~
static void __exit led_platform_exit(void)
! M( }" f: Z$ M& g/ M- f{1 P8 O$ B6 B  A+ Y) q
        platform_device_unregister(&da850_evm_tl_leds_device);
7 `1 }' U5 F5 h8 H2 t; w
+ Z' B0 P/ \1 a6 v, X1 B% G$ s        printk(KERN_INFO "LED unregister!\n");
( a( f- u" U/ m}
$ }- i) b. b3 U) _
* m$ L5 S) E% w! [9 cmodule_init(led_platform_init);
* y8 ^3 A% D# nmodule_exit(led_platform_exit);) i0 h$ N5 u+ C( R- c
" ~+ \) t+ Z. R  d  a1 P" n0 k$ A
MODULE_DESCRIPTION("Led platform driver");
1 Q. [  w% |9 |6 G+ s) y8 UMODULE_AUTHOR("Tronlong");
5 E& O/ J3 {/ i3 T3 p+ ]5 ~& JMODULE_LICENSE("GPL");0 q2 u+ O3 [! `. m; P7 R- X

! W, i( u, Z5 M/ {9 n  f/ k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 23:33 , Processed in 0.040184 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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