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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( b  X& h, Y9 J( D5 W" Q
#include <linux/init.h>
: U: F) a' ?+ O& i7 b# L#include <linux/module.h>
( ?5 i# T9 L6 Y4 Z#include <linux/kernel.h>
6 ]& N2 E+ v2 Y7 F2 C+ B* G#include <linux/types.h>
' e) n; F8 r4 N9 K  {#include <linux/gpio.h>
& S$ y( T6 ^3 x; ~0 P#include <linux/leds.h>
1 A: n# Q  O2 t9 z#include <linux/platform_device.h>7 q" t& l8 x0 g! a- _# F4 R
+ Q7 z$ C5 }4 N- K5 I0 H
#include <asm/mach-types.h>: Y/ o8 E* ^# ?' \; ^, O( |
#include <asm/mach/arch.h>! r! j3 d% @+ J
#include <mach/da8xx.h>! I4 J9 w& e" t" u6 I
#include <mach/mux.h>' ]! q& c3 F! R, j9 j
. x2 O, d, Z8 q- v6 v/ I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)! ?6 K8 O% D! ]3 Q. P4 N
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 N5 M4 Q- j5 \& O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# ?( i9 F6 |5 L! \  Y8 c7 G#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 u& S; R3 Y, l! a# }
! Q/ O* M& d! P8 |$ C: ], k- w0 u' A/* assign the tl som board LED-GPIOs*/
* y  w/ P" ~& X" Fstatic const short da850_evm_tl_user_led_pins[] = {
2 T# I( Q, m( z& f. D! _        /* These pins are definition at <mach/mux.h> file */3 Q2 D1 e: j; F) Y" a
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- \. e: ^& @0 g5 S* T! s        -11 b  G# G) ]3 _( a0 x* l, D- R+ X4 j
};1 ?' {% X  p& e" D- G4 j$ K3 f- ^

4 \% K2 n' z% H5 r* H- r: n8 ustatic struct gpio_led da850_evm_tl_leds[] = {
; S" h3 A- Q. i8 e8 H        {
# o" @( L( ]. \9 B; L" T                .active_low = 0,
1 f5 H  s+ S8 ?6 `                .gpio = DA850_USER_LED0,( d) T" I) L1 ]! ]( l
                .name = "user_led0",
8 J6 I4 |4 _+ Z( N                .default_trigger = "default-on",2 b3 J" y( O$ _. X3 z$ A% B* b: j: a
        },
& m3 {% A, A- h/ g8 [3 p        {# O' B/ u+ D  Q) m* b
                .active_low = 0,; K* Z" j2 p( o+ }! Q1 V
                .gpio = DA850_USER_LED1,% K) t) K  J" g6 h  B. v% {
                .name = "user_led1",0 K; `/ W8 I* H7 `; k, G) `
                .default_trigger = "default-on",4 K1 y& E0 ^) K" \
        },
) Y3 [  \" O7 A% |' j4 d        {
8 [, E6 c; D- ~6 E6 L; |                .active_low = 0,
/ V! j4 @$ Q0 d* C2 E% V" ~; V, m! Y) x                .gpio = DA850_USER_LED2,
+ Q. H+ R( l& M% w                .name = "user_led2",/ ^1 o7 y- `* w: X8 U0 a
                .default_trigger = "default-on",
2 A, s- D5 R" W, J8 s( N+ e, Z1 X        },, K/ N  T0 a" Y2 f$ z  r  `; d5 U  H* {
        {) m/ b0 v5 l$ H9 ~
                .active_low = 0,
- G# M0 s( B/ o/ U4 }, W' H                .gpio = DA850_USER_LED3,
, [7 ]+ [7 Y" ^; o                .name = "user_led3",. L, `+ x1 r# e
                .default_trigger = "default-on",1 `5 b  k" G' s- k6 O
        },
$ E5 C! R4 O: Y, Z};0 e3 m$ I9 l5 \: b9 F1 m% s
4 d+ x6 [8 c0 d$ n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 A* e( w4 _& o
        .leds = da850_evm_tl_leds," e, _/ ^* g( y* X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
' h9 M& t7 j# ~};
1 a+ k0 e* v' j% [3 M. s3 C
. M1 s2 Q4 ^5 n1 @9 vstatic void led_dev_release(struct device *dev)# p2 n* K( o$ C* O2 \  V
{' ~* W$ a* s; T8 N, Y5 v
};& N0 y0 ^) }6 O6 c  P
/ L7 ?4 M6 b/ z2 e7 J5 H, W
static struct platform_device da850_evm_tl_leds_device = {2 h% {  A& z, p2 H% l+ @
        .name                = "leds-gpio",
& f" o$ ]8 v* N8 o) {- {. }7 x        .id                = 1,% }$ `# J7 \, m- R3 k- b9 i- i9 y( ~
        .dev = {
8 w) P3 x1 B$ ]0 {0 \& N! C                .platform_data = &da850_evm_tl_leds_pdata,0 T# w4 c4 C; Q- A' T; G4 N, v
                .release = led_dev_release,
+ u7 @  l; `5 x5 c% u6 z2 Q        }
" @9 T0 G" ?, W* [, K, b2 x1 d};" x/ h, }9 D6 G* V* k( C+ {- b
0 }& v+ d0 q, t: {/ `
static int __init led_platform_init(void)
( S5 u8 o; m" K* S: H% C{
9 z5 m) w9 N5 \        int ret;' F& X# b5 `% i/ D. r7 k
#if 0: w9 D' F. w- L8 r1 G( m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) _3 ], `+ z* c2 `0 W) W" A
        if (ret)
2 T3 B) }9 d3 J- {) E: [0 \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 w/ B8 M. X, l. H' X7 _1 Z2 }4 b: n
                                "%d\n", ret);' z& J3 n5 _1 R$ ^* j: O
#endif
6 R( d) M0 ~* P3 r0 h        ret = platform_device_register(&da850_evm_tl_leds_device);; X6 y; h9 I. i. j
        if (ret)
5 E; @# |4 s2 T' G, w  c- c                pr_warning("Could not register som GPIO expander LEDS");
; m% \/ g# O! m( E9 f) h        else
* f1 v' t) n1 _( [                printk(KERN_INFO "LED register sucessful!\n");
- y2 y7 T, \9 c
# L$ V/ L4 W. g  I2 L        return ret;4 u5 F: L3 H# B5 P$ l: U& J: z( H
}
/ \9 `1 z, W1 i' O5 v( w
: I: C1 u" c2 R) sstatic void __exit led_platform_exit(void)' y. v/ d( j0 M- _
{
6 o% F( o- z9 v: y        platform_device_unregister(&da850_evm_tl_leds_device);) J; v  [8 M1 _; \" E8 |
- x0 S( j; [' j6 i2 T% ~
        printk(KERN_INFO "LED unregister!\n");
( u  B4 @9 Z% G5 q/ D7 q}' K$ k9 p+ y3 z  t( z
0 J6 ?$ m; r- O8 P
module_init(led_platform_init);" O) C3 B3 U% L$ X
module_exit(led_platform_exit);1 E, D6 C: w0 P, I" U# ?" ]( e8 ~

4 l2 S, a" B. ~& d5 AMODULE_DESCRIPTION("Led platform driver");
6 S& f7 p; g8 j2 x0 t0 \MODULE_AUTHOR("Tronlong");
: f+ `; t0 Y5 N! W# YMODULE_LICENSE("GPL");
" x% r0 j0 Z6 F/ R! Y4 t- g9 B2 e2 F+ k$ b# C) R0 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-1 20:58 , Processed in 0.040166 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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