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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' Z& A4 N) m: O' F, p#include <linux/init.h>
7 ^0 V; @, O5 V* v#include <linux/module.h># I' U: z, Z3 a; S, v
#include <linux/kernel.h>1 ?1 `4 G, G6 L1 z
#include <linux/types.h>
7 D3 k, W7 g2 W- \9 T) D#include <linux/gpio.h>
" \9 q; U: J9 D8 U4 P( h#include <linux/leds.h>* K9 d$ }3 k2 ^1 O) G% z* a
#include <linux/platform_device.h>
% X. Z+ E+ H  l5 ^; F: \* A  N. O2 L& f" h
#include <asm/mach-types.h>
- _3 b& M( G5 C4 b" V% N#include <asm/mach/arch.h>
) G/ Q2 r9 o9 j& h#include <mach/da8xx.h>1 D# D* c/ ^" E: X0 T5 n
#include <mach/mux.h>
& i* n2 `& W& T& u6 E! v# W6 v8 x6 e* R" a! I) D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 k$ H! r7 C" D, n+ j' v& E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; M% V0 o/ O- L, h; h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ s" [: G" J. _9 l; }; G
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 g; }! x: A$ t( w+ @1 I- B0 t, O" v1 \' l% U/ E
/* assign the tl som board LED-GPIOs*/
5 r3 p8 {) }8 o& o3 o$ Astatic const short da850_evm_tl_user_led_pins[] = {
7 k1 E. C  v9 d2 a$ A% _        /* These pins are definition at <mach/mux.h> file */
) V  ~# L& L0 Q# {% _  a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& q. c. h7 R% ?: |5 v0 w* |0 B        -1  K# c: _) z8 V2 j
};% h9 G! ]) ~: x, z/ d
+ e, J1 D& g# m, n4 p  ~1 Y$ z7 D$ e
static struct gpio_led da850_evm_tl_leds[] = {* u. S( s! t7 z2 \
        {
4 [2 m9 n) U, K                .active_low = 0,
3 ^) ?% B$ r! B0 n                .gpio = DA850_USER_LED0,1 e( s% z; _1 H* G
                .name = "user_led0",; F8 u- G% ]+ n* {8 U1 ^
                .default_trigger = "default-on",: Q% U) D/ F; ^7 s  {- F# E
        },+ ?$ O* f2 l; x5 m
        {& \3 M; n, k0 A
                .active_low = 0,7 ?) U( h& D* c" C
                .gpio = DA850_USER_LED1,3 T% S2 Y, m" ]8 d( H% [$ Y, L" v
                .name = "user_led1",1 Q# u# p, c* M1 }: i5 Q9 H
                .default_trigger = "default-on",
, p7 m: D* [- k" o* l+ x        },2 E/ T6 y6 W4 E' I, f1 @
        {4 ?0 t9 A8 ]: j* j3 _7 F, i* y' n
                .active_low = 0,
+ e) V2 z* o, D  T                .gpio = DA850_USER_LED2,8 ?, u% Q, n* s3 |' o; o
                .name = "user_led2",
) W8 v3 b* d+ e; M2 }5 T                .default_trigger = "default-on",
" f9 d; M! Q% T+ I        },
+ p3 S) Z& L' m( U6 l        {* N) V  j# y- Q- E+ ^. r
                .active_low = 0,
- F1 U5 V5 f9 R* l7 `                .gpio = DA850_USER_LED3,
, l% R- ?( g  L' j3 ?, j                .name = "user_led3",
! ]) A/ l8 q4 U8 I9 Z* A6 m                .default_trigger = "default-on",
6 _6 a9 l+ z6 k  C% p        },: m6 ?; x5 B& k, R5 E+ f1 c% e, @9 }
};
1 _* g4 L& n% V" ^5 k7 U7 _9 a8 w0 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 S" Q- C$ p% x* n' ^        .leds = da850_evm_tl_leds,
6 \7 T- D" w9 Y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* K& u: v/ ]/ v) U% x2 |5 r
};
" F9 p3 O, Z" k' }2 q# l$ N3 G0 A
static void led_dev_release(struct device *dev)7 E) J# L& b; h- d$ Q
{1 A0 |. F) ~5 v  `
};  S2 z8 v2 m. N$ P" V4 h

0 T+ O) _( `$ Q( q% h& Tstatic struct platform_device da850_evm_tl_leds_device = {
/ r& |6 h* T, ?+ A% |        .name                = "leds-gpio",
& g4 Q4 [  B1 V2 R+ n* t0 ?        .id                = 1,
, Q* H8 S! ~- D        .dev = {" j7 Y* A; c3 o9 N
                .platform_data = &da850_evm_tl_leds_pdata,
% C4 k0 I! X% T; F                .release = led_dev_release,
4 S6 \$ w8 V8 F2 y        }1 S; G4 M- i8 {: O8 }2 F/ A8 I
};! F9 {& ~8 U  ~& s( p; r- y
, z# s5 J4 E! q! C. O
static int __init led_platform_init(void)
$ Z  W9 b6 ]" S/ q( }1 r; k& n& V{4 }$ u+ r; R0 }3 f
        int ret;
# }2 x) O. U9 Z' s# y* Z+ @2 P' E#if 0
* p' [" t9 h5 N* I, E( z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; ?6 \4 m. m" b* z, F
        if (ret)( G( W7 b2 O8 X  ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ c& j0 m7 `: _2 b8 _; b+ J$ l                                "%d\n", ret);* c. S# e5 I0 [# _/ h
#endif% T# J2 o! L' W+ T+ `
        ret = platform_device_register(&da850_evm_tl_leds_device);7 C/ G$ f" j- `3 d3 h+ C8 F
        if (ret)
- f2 O2 Y4 T% g0 f( I# i9 D) R1 F                pr_warning("Could not register som GPIO expander LEDS");- @: M/ [, ~' m2 g% B# r
        else
& n" F- |5 A0 ^% @$ N                printk(KERN_INFO "LED register sucessful!\n");
( Z5 {9 c: X( Q6 T  F4 f
& I/ C" y, A) X: E; F        return ret;+ J0 l0 O+ e3 Z! p, t9 C8 h9 \
}
) {/ S. A9 [/ r5 Y: N% p" U6 c1 Z0 H. ]7 i5 \
static void __exit led_platform_exit(void)" d: ], X, }& _- k* E6 m$ H
{" ^% ?! @; x9 J
        platform_device_unregister(&da850_evm_tl_leds_device);
4 \4 T- p( V, \& w  O
5 v' i* R' c) ?: S6 w$ j7 y) h2 ?- y        printk(KERN_INFO "LED unregister!\n");
' _% G$ v$ n) [% Q5 \# f/ W( M! M}' ]0 L% V1 _4 ]4 s0 Y7 k
7 d' F) p7 j) ]  F
module_init(led_platform_init);7 q" N$ n# D! y' T+ B
module_exit(led_platform_exit);& s" `  ?/ L# c) _
; i) Z: k$ }7 ]% m5 g$ l  Q8 h) _; M
MODULE_DESCRIPTION("Led platform driver");
, N6 C# e- N5 \8 Q- i; LMODULE_AUTHOR("Tronlong");+ K4 j' W- ~+ U8 V5 ?! G- R
MODULE_LICENSE("GPL");
# e  O/ V) r/ s! ]1 N6 y. E5 |
$ s. i$ X& M: J  u% s2 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-5 01:56 , Processed in 0.043439 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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