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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; z9 _/ j. b; b" F; e9 q( k
#include <linux/init.h>, U8 i/ X6 D2 I% Q/ Z
#include <linux/module.h>
- A4 V8 i7 |8 m+ J6 v#include <linux/kernel.h>8 `. J- l4 L" O- f+ r
#include <linux/types.h>
8 R; P. g3 w4 c#include <linux/gpio.h>
# C1 `: a- `4 P" `4 |* c7 r0 b#include <linux/leds.h>: N- r/ L# H) T! b
#include <linux/platform_device.h>
! n) ~  E4 N! u$ Y; c  e& E( w# O: N6 r  F9 i, W3 h5 _3 g$ J
#include <asm/mach-types.h>6 c& A4 I9 b0 M, p: G
#include <asm/mach/arch.h>' D3 C- G- n9 A# ~: C7 A
#include <mach/da8xx.h>. y6 o1 ~( k/ S0 m2 @8 _% t
#include <mach/mux.h>$ b9 ~: p8 ?: s6 J5 j8 r

6 K7 J# R) a! Y' N: Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 ?( ]+ d; q9 w% A, J$ A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  D8 Z, t6 ~( z
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  l& }' W0 m, t$ ^
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ B1 K* g2 i2 `( V1 L6 {& P" @8 Z* C

  ]+ S  Y7 Y" q+ T/ E" z9 _/* assign the tl som board LED-GPIOs*/- J% L5 o# ]5 F  R" k
static const short da850_evm_tl_user_led_pins[] = {7 a6 N* R& b+ I6 _  i
        /* These pins are definition at <mach/mux.h> file */
* e  @. M9 I0 H+ _% c0 i        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) ]$ t2 _1 C, T' g4 ~1 ~
        -11 n% A  x$ f4 U$ ^5 n, k/ Q+ {5 a
};
: c/ k& Q- H$ `$ k" X
5 j0 y8 O/ f: \9 e% }# }static struct gpio_led da850_evm_tl_leds[] = {; H% A) R7 ]; H+ c; |5 _+ _
        {% U" c, G% P8 D# p  ^8 o
                .active_low = 0,: ^, y- w! c* B0 t
                .gpio = DA850_USER_LED0,; }4 x3 r% {4 y
                .name = "user_led0",
9 X1 S1 z, j3 U( g" I$ y+ T                .default_trigger = "default-on",
+ k" \6 T% J9 h0 s! n" K* z        },
& X' g; {: f2 s2 `' J        {
9 L% w* K0 P5 V( X                .active_low = 0,( Q+ J/ I( q) J: y! M7 z
                .gpio = DA850_USER_LED1,4 w) V# d% c5 c9 y5 e) d
                .name = "user_led1",+ W7 a. h  D: I) P7 }  R
                .default_trigger = "default-on",
0 N' n* k; U* |3 B; h        },# }3 g" B0 X2 y( x  Z
        {; l0 e7 m: N* }, Y
                .active_low = 0,* u4 q+ D& x6 J; ^/ f
                .gpio = DA850_USER_LED2,! d1 v* g$ x- S) W
                .name = "user_led2",! L  H1 p) t  i& ?; n3 ]
                .default_trigger = "default-on",1 V# W- \4 F7 p, u; d
        },( }& {: e6 ?1 D% ^* i
        {
5 P- n& j4 S* i- v5 p1 s" S                .active_low = 0,
& S4 v& o  j4 Q7 f- V1 j( ^                .gpio = DA850_USER_LED3,
+ n" ^2 m) @, o# j                .name = "user_led3",& i0 _1 V: H1 Q% J) J* ^  X
                .default_trigger = "default-on",: S0 T/ A& B, F% c/ @! E
        },
  D; ?  _$ l5 T  w2 m! ~5 W};
* b* K1 k- ]7 E, S
# ]0 Z9 A' e- z/ d' x2 h  i. U* fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* n! o: M$ p' `; z2 M7 K$ a
        .leds = da850_evm_tl_leds,
& `+ p0 p! m4 Q6 Y' d' }2 P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, J. O: [7 p* z5 b5 ?# ~$ O/ g4 H& @9 U
};7 t8 J, w$ W7 ^7 ]

! g7 R2 Q9 ^( k. x6 z* Tstatic void led_dev_release(struct device *dev)7 [$ }% F- u& u* {. ~4 _% y& g) x4 |
{
8 ?, n, }% D# c5 F3 b0 ?1 C9 p" I/ I};* K0 y7 {1 H* N/ S: B7 x6 ^

. p; o/ @8 Q2 C) Z7 hstatic struct platform_device da850_evm_tl_leds_device = {; O1 `* u6 S* e' h$ W
        .name                = "leds-gpio",
1 i. _6 Q+ q' G/ P, }: W4 \' C        .id                = 1,( G! V/ p4 s& f) x
        .dev = {
, X, `# u, b9 ^( Y) I                .platform_data = &da850_evm_tl_leds_pdata,) R& O4 o. B! f+ P' Y
                .release = led_dev_release,7 p; ]( X; N! J0 x. a
        }
3 z, y( K0 b1 Z* S};. N9 Q- x3 R+ P# m$ e
& R/ B0 P* p- d) n4 f
static int __init led_platform_init(void)! m2 H2 a( H3 S# i0 L
{
' Q+ p. ~; c' y        int ret;
& D- Q0 @) N: ^( i; o( d#if 0
7 @5 U# X7 t/ s+ ^& b1 [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) N) o# F4 d0 f  E  q8 A/ i        if (ret)' e8 O1 ^4 f( a, W0 U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 [" K5 r9 I! S9 |- ~0 D
                                "%d\n", ret);
& _" G/ k& G& B- P2 n9 Z#endif+ W; t* K- p* {( m& n' k$ v
        ret = platform_device_register(&da850_evm_tl_leds_device);8 F0 {- K4 J0 U0 T7 q
        if (ret). c) b( j% ^# j
                pr_warning("Could not register som GPIO expander LEDS");% T* [, _3 V8 v: I* {
        else
3 W* o1 P2 s2 z5 J% D6 V                printk(KERN_INFO "LED register sucessful!\n");, ]6 t4 e8 {4 G" n% R3 v

0 m5 b& Z$ A2 F# ]        return ret;
* A+ l! z9 _8 m" W, k}$ `% b3 n# j$ p1 k: I$ P/ {
9 @9 E0 _& B% I1 ]0 E' l+ W
static void __exit led_platform_exit(void)
) ~4 ^. T& A1 W& E{' _3 W$ z5 U* p9 y9 M
        platform_device_unregister(&da850_evm_tl_leds_device);) Y$ B8 K2 e, K  ^1 Z

' x2 h* j9 S, Z% ^! w        printk(KERN_INFO "LED unregister!\n");6 z* @0 l7 j, L/ h% ?( ~8 b" N
}+ u& o" F9 G: ]2 |! ?0 T- m1 y
: N: t, q( ^  ]0 m1 t- K& ]
module_init(led_platform_init);
' g" u+ \) \; G; Pmodule_exit(led_platform_exit);' G" k& z8 X' B0 s) o
& H* Q) P/ j& c
MODULE_DESCRIPTION("Led platform driver");
  i% n5 X4 {% i: j4 c2 ~MODULE_AUTHOR("Tronlong");
/ ]: X. I# z7 t6 ^- @) b7 f/ gMODULE_LICENSE("GPL");" M8 b  [0 V: Y4 A+ m$ t" e3 u; K( |

  U! y  C: |+ C& v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 05:05 , Processed in 0.037341 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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