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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ ~, F8 H! K& y0 H9 f( D; o3 z" ]! v#include <linux/init.h>
6 ?! P. [: ^: n6 l  l#include <linux/module.h># }5 q# D  s& n- E& E
#include <linux/kernel.h>
& |6 h7 ?) b0 o% {. W* X, ?#include <linux/types.h>( Q8 G5 i6 W; ]7 }; h) ?- Z
#include <linux/gpio.h>
% T( N" s  w# M; u. e) {#include <linux/leds.h>" h- _3 P9 t2 S4 c. j
#include <linux/platform_device.h># d% H- ~# u6 r; x2 h0 n

2 F" {. y. {! h0 c6 q. a#include <asm/mach-types.h>
* u" y( x% t3 k1 @( J% C: f#include <asm/mach/arch.h>
- G- T; X: _% V#include <mach/da8xx.h>2 U, f0 P. h' O* K3 V
#include <mach/mux.h>: K3 q5 i5 j. f& X6 e- R7 V

/ J& O8 ]. Q3 g' w" X) `2 |! x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 w: x. M3 R8 w) r
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! E% h; T, q/ u! f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 J  ^5 \( _3 W: b+ i( R: X% |
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) S6 L! m* L# D- o# K5 D; z, W, s" ~4 O' D3 b2 G: y0 N; l
/* assign the tl som board LED-GPIOs*/
% t& s* f( i4 U+ Qstatic const short da850_evm_tl_user_led_pins[] = {
3 ~  G; g. x# u, ]5 }# \# J! ?        /* These pins are definition at <mach/mux.h> file */
/ D5 @6 e- K& [) K2 N. [        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" \3 W' s$ G; i5 k- E        -1
' f0 z7 H1 _- E( I};
/ V, N8 J, w9 J  D/ t& ~  ?+ J6 ~: _: C  J
static struct gpio_led da850_evm_tl_leds[] = {( Y" N" s3 s+ O; |
        {
8 a4 V* S2 ]0 w4 i1 d+ [                .active_low = 0,
5 f& `9 f$ [7 C' F# f                .gpio = DA850_USER_LED0,
- }6 j) f% a8 {! b; U                .name = "user_led0",4 |7 u1 B! V7 A& b6 M7 Q8 I
                .default_trigger = "default-on",/ t4 b. `9 h: h) R1 `# d- {
        },
# B- v2 w1 Q; ^- o6 m        {
7 T+ o1 w& {% z; l2 u                .active_low = 0,+ O1 ]8 }! ?) O" V0 g2 ?
                .gpio = DA850_USER_LED1,6 I% H( e* ?0 l$ _8 a0 g9 z
                .name = "user_led1",
& e: S5 l7 S! s+ b- c: G6 r4 u  }2 p1 |                .default_trigger = "default-on",* ~7 j8 I8 F/ Z" l; }6 f3 ^
        },
- U; X5 R  G# f7 c5 S: ~        {
1 @; W. A2 g4 T/ M, @7 S# K! C                .active_low = 0,# ^# j( E5 D& V8 E' U/ F
                .gpio = DA850_USER_LED2,
. w4 ]: x  ?& ^2 N6 Q) S                .name = "user_led2",
# g6 f6 `) ]6 x. n: ^' ~                .default_trigger = "default-on",1 D9 q) K' x0 L
        },( ?  x$ Y3 Y9 I9 R0 j( N1 s" a8 v
        {
4 U2 L4 G" c! g( u/ a6 S( b                .active_low = 0,5 l2 N& @, ?8 p% D
                .gpio = DA850_USER_LED3,( p0 K& ~/ ^3 s1 e( a
                .name = "user_led3",
1 U1 W8 x4 O. a1 ?- r: p                .default_trigger = "default-on",
. H2 x. I8 [2 a6 S7 r        },
/ O- O5 \0 l, b4 S$ r3 x" l1 N) `, m};0 A; \' ^7 I) w! j% E

9 Q; w2 ^! N& ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ k- ]5 _) `  A, ^3 f1 i
        .leds = da850_evm_tl_leds,' w9 e6 {* j8 M# n' G$ @: t5 R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 U7 ^1 {5 c! e! c! C};$ K" Z: l; a* Q
1 ^" r$ Q& |6 T+ T& o& T' @
static void led_dev_release(struct device *dev)/ A& q- z5 v$ a/ E: S5 Z
{
$ c+ d3 H  M1 U3 Q9 f9 N4 b6 `};
8 V* j5 f4 ~: m2 Z% K/ b' J# g$ Q' O  A! @. I
static struct platform_device da850_evm_tl_leds_device = {
6 W* K" g$ Y- x        .name                = "leds-gpio",
6 C6 K. w8 S; ]0 C) j( d. s# _  l0 n        .id                = 1,
7 p  ^' _" n4 w# B        .dev = {3 z1 M3 n; V3 u3 z9 f/ V; S
                .platform_data = &da850_evm_tl_leds_pdata,+ i( b7 b- u- J' x7 \
                .release = led_dev_release,; `4 Y# S/ S- d/ q  S9 F
        }
0 S' q1 Z3 C% K8 f! q# p2 A};( j. D( R% i5 y# _" F  Z

, T* c5 H: h$ O3 cstatic int __init led_platform_init(void)" u# d. x. N4 O  G- A
{
7 m7 E* ^  |" E$ m" K5 f        int ret;, [0 e! L( y+ B9 c
#if 0
! k  L/ ]. i- Z( {) ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 d+ `- V0 @4 T! g1 f' t/ c. O
        if (ret)
  L6 }( Z! g( N2 `$ i8 \6 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 K7 J, d% {' h6 o3 S2 o; O9 O
                                "%d\n", ret);
" z; w! q, \8 A5 L( R$ L% ]% q#endif
3 k) R# G5 a8 w4 e/ H: k7 V        ret = platform_device_register(&da850_evm_tl_leds_device);
' V9 V' b+ v/ ?/ }        if (ret)% t  c+ R, B5 I8 w8 Q- W
                pr_warning("Could not register som GPIO expander LEDS");4 C; n+ n; x3 G! q# M' v% Y
        else
+ C# b" _" B. o, }5 y2 u                printk(KERN_INFO "LED register sucessful!\n");2 E2 S1 _9 ^) f. p

, U, x+ n5 O4 p  i3 G& l" X% |* e; L        return ret;  e3 \7 T! a1 x; v) s" H, r. O. v$ v
}
5 n$ ]% Y) D/ {  O. B# {
4 U2 u+ l4 F3 kstatic void __exit led_platform_exit(void)/ [1 e1 P, h* @4 A
{
0 X& V6 t& i6 R9 [        platform_device_unregister(&da850_evm_tl_leds_device);
: L# B) |/ G0 I, z% T+ t5 q/ V- M8 ~! e' S: r
        printk(KERN_INFO "LED unregister!\n");. x; j! [2 a6 p) F; {
}
2 {4 ]4 D1 ]1 H- ?; J; _
# y9 j3 r% J% D( r# E5 P- Vmodule_init(led_platform_init);6 z- W' ]" a9 Z4 u8 ^2 x
module_exit(led_platform_exit);5 e4 J1 a. s2 o% j: y2 F9 Y

1 w* M2 @9 B" N5 H; NMODULE_DESCRIPTION("Led platform driver");
5 t7 x; Q6 ~/ O4 _9 xMODULE_AUTHOR("Tronlong");
1 Q! m/ C/ z3 k" b" D& gMODULE_LICENSE("GPL");* s  f2 P( l+ j7 ~2 t# C9 j5 j
; b( u7 Z7 V/ s- P3 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 19:01 , Processed in 0.038659 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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