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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& P4 Z) j0 g! O8 a  G' O& R- @1 Q& L) y#include <linux/init.h>
/ V1 }+ R% C. ^% M- p$ g#include <linux/module.h>& R7 [+ X, D( H6 B4 C8 j7 c7 ]
#include <linux/kernel.h>
7 g: s3 u/ f6 d; K( C1 }4 k#include <linux/types.h>
, m) c7 _7 u/ g0 A7 Y& O' f#include <linux/gpio.h>% B4 ^- w# U& y; V
#include <linux/leds.h>
3 m: H8 T/ D; E3 p/ B% f4 n#include <linux/platform_device.h>) a( B& O) m( i8 s

# R7 A! L( \. f$ G#include <asm/mach-types.h>
: `8 A$ I6 o( a1 ^6 y# M  \#include <asm/mach/arch.h>
+ r0 T8 O) G& f, D3 c#include <mach/da8xx.h>
3 v; _7 j( t8 X8 S! @5 b#include <mach/mux.h>2 d  L+ [9 a" T; C
# m" B) Z0 j, l+ q: a7 B2 d+ Q7 e3 Q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 B( ~5 I7 e; b; g4 Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, @7 V! f( S/ J6 v/ n  R#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& q! y; v& Y4 e  K' y, k& I% U$ O
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  l, @% O1 k9 s; l' X0 u, U6 U5 ?
) n7 L" a, R/ b3 m0 j$ p3 y
/* assign the tl som board LED-GPIOs*/! W  n; ^7 Z+ o* ^3 i
static const short da850_evm_tl_user_led_pins[] = {
; }0 J! b0 x7 o, w' u        /* These pins are definition at <mach/mux.h> file */$ x0 A. R" u7 Z- n4 s% _: m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 T6 E* N6 i. p/ @; L& m- K& e" s# |        -16 C8 W. i0 e, i, e9 P
};) t; H# t) S; L$ d8 I
% |2 @0 _  B; F( ]. ?) R
static struct gpio_led da850_evm_tl_leds[] = {
9 |3 t# A/ {0 f5 `" ], |3 C/ Z        {
7 V+ s5 |- R, z: J& t                .active_low = 0,2 M. ^8 m& L" a+ `# {" A
                .gpio = DA850_USER_LED0,
( z9 U( L7 Y, M' q: V' @                .name = "user_led0",
% L! m/ B! e0 h) r                .default_trigger = "default-on",
7 `5 Z' Q) w1 @( C# o! t        },
$ Y( m7 W' E3 j. I( q' x        {, w* d. ~/ p  d2 t$ `) C
                .active_low = 0,( p* w9 H3 [! E1 U" u8 U
                .gpio = DA850_USER_LED1,
4 T0 p% g2 e5 n+ L# S                .name = "user_led1",/ V# j( ^& z% |; W; R3 ]
                .default_trigger = "default-on",- T, U4 x1 b4 e% E' t1 l; o' ], K
        },
5 |0 i! x) G. {. h5 ~        {
3 Z$ I$ J5 C- R8 g: K                .active_low = 0,
  W  ]7 z* z, v" X, K' N                .gpio = DA850_USER_LED2,0 L% m( ?7 K5 {4 z) D8 Y2 `! j
                .name = "user_led2",
* Q6 o% R, I. @- |0 D0 g8 t7 {9 B/ S                .default_trigger = "default-on",
% ?6 n: o1 l/ \        },
9 z* M$ A( q% @2 l+ Y- G        {
  x( x+ V% N; j                .active_low = 0,
: c( x/ H: x8 i3 V; F                .gpio = DA850_USER_LED3,2 i$ K+ E0 d/ {, }2 j
                .name = "user_led3",
% q% g5 f1 [0 x' f& G                .default_trigger = "default-on",
4 j/ y3 r' j. N. g3 R        },
: c+ [/ W3 w& n. d};
( x, t" G& d  f/ S* T$ a  h  o( X( Y# n1 W" w- @
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 T/ i, A, p$ q: \* P        .leds = da850_evm_tl_leds,
% G. k1 @; m  v" z' Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 L" B8 a; j: m9 h, Q+ |};. _+ F6 Q0 i  R7 p: M# f, H9 s
7 \0 c+ Z9 }7 q
static void led_dev_release(struct device *dev)
% ]/ `: p& u9 E" `! \{; f: B- v$ _0 V! E6 z% Q6 g
};* y. J/ }9 z" B/ P

: Y. B( f7 G" D- z- z9 W! l: G1 F* jstatic struct platform_device da850_evm_tl_leds_device = {
2 H# I+ }4 s1 }        .name                = "leds-gpio",, p% |" B7 e) j7 n0 q3 A$ T5 D  G7 }
        .id                = 1,0 ?7 x, v% K+ P! f" W4 g
        .dev = {- R, \" ^, o2 E* z, T
                .platform_data = &da850_evm_tl_leds_pdata,( @6 w# q% X' Z8 g0 }- \6 k
                .release = led_dev_release,* C6 L6 m$ K+ M0 Y$ J# }! ~
        }
& l" W0 Q; F2 N};/ D5 v9 E6 V% U8 s* H( ~" _6 F/ v
- r# {7 E$ ?- f) L/ ~7 L5 L
static int __init led_platform_init(void)
) `' w9 g/ X" I7 n6 c; `{
0 x/ m9 C+ d0 W        int ret;% `- i1 X3 g  G8 t; n  l
#if 0
8 h1 _( A: n, a5 [. J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  ^& P1 A3 t, J- G, C9 T
        if (ret)
. T! J) w- c6 }3 C/ `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) ^8 f' f. j4 q, P+ v                                "%d\n", ret);2 \7 e, O7 d: a4 R4 R- ~
#endif7 h1 M8 N& M5 Q$ P
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 w' }; k6 b9 C0 C        if (ret)
  z+ ^% |+ ]1 n$ b4 m6 f                pr_warning("Could not register som GPIO expander LEDS");, A4 Y. A. o" _
        else
4 b" ]  }- `# U& {9 O. @1 Z                printk(KERN_INFO "LED register sucessful!\n");
- k! C. L; R* ?% s, ^- s6 t! l( y- v4 ^+ h) v$ a! T6 j. T5 N
        return ret;
. _# a- [4 i. g. y& j; x}3 l9 h2 C. S& f$ f  L
. N8 x3 x; j7 ~* O
static void __exit led_platform_exit(void)* X! j* x) Y; X- Q5 l
{" d8 u1 Z3 ^, c, M9 ?7 z) g5 x0 `
        platform_device_unregister(&da850_evm_tl_leds_device);$ Q) m& d- c4 ?% I

% e0 H- Q$ r1 W9 W6 `        printk(KERN_INFO "LED unregister!\n");4 y0 x6 o+ V) `& C* f6 w
}" R+ _  C9 M9 o# H# O4 v6 F& ]
% w4 a0 l! F+ _2 R- e; i9 H2 _
module_init(led_platform_init);' Q6 A; F: ]8 X( d- B
module_exit(led_platform_exit);0 p$ [- R' z% O$ F  l4 g, Q

! r( t3 \: P. K& D* P6 x8 [MODULE_DESCRIPTION("Led platform driver");
6 R$ k8 D9 f0 m- IMODULE_AUTHOR("Tronlong");0 o' @4 |" W0 W" T' M* A6 v
MODULE_LICENSE("GPL");3 A: r8 {: D0 Z; @# j
: M" Y" H3 n, x0 |7 M* k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-28 03:37 , Processed in 0.037353 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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