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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# R8 n1 D: |- {- E2 v* z3 R#include <linux/init.h>
" U# e8 V# U) M#include <linux/module.h>
, u' v% _) K5 i2 J! H  R1 i#include <linux/kernel.h>. u3 y1 T! n9 a+ ~
#include <linux/types.h>' o% I3 M2 X; B' q+ f
#include <linux/gpio.h>
% R! c' j7 ~1 ~3 U7 z0 t#include <linux/leds.h>
, k: Q7 s6 E" ?0 X! {  e* x$ N1 w9 c# L#include <linux/platform_device.h>
% _1 C3 w# `5 f. V# J- P+ R# }) x( `
#include <asm/mach-types.h>+ |  [8 l+ V2 B9 f- u/ p) u
#include <asm/mach/arch.h>
8 [1 x. U: O% Z# m( v" L#include <mach/da8xx.h>
+ s% e& f8 j# w9 x/ \) w$ a#include <mach/mux.h>
6 R( E3 G* o! A* [' ^8 C/ D8 o3 S2 [) r5 a9 q: B! C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 w6 w* E1 O4 J6 P- W: Y6 ~2 K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
2 R0 h7 X) o2 w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 l# `: i) w* l2 M0 e# i$ Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 N) R& x( X/ _# V2 y4 K( w( u$ V0 z. @- b  d7 w
/* assign the tl som board LED-GPIOs*/  @! m. [& Y: l) g5 O
static const short da850_evm_tl_user_led_pins[] = {
4 d) J) `/ r  \" T; q: t        /* These pins are definition at <mach/mux.h> file */" y5 u0 [) O1 S2 }% c: W: ~# g$ w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; @" a0 v: _( |  X# m5 \        -1. E  `3 f7 t( m2 g4 B% ~
};
1 k5 \; n: Q: u& r4 `$ Y; H3 Y6 V
) G) O; G7 f/ r5 A' Xstatic struct gpio_led da850_evm_tl_leds[] = {( l# _4 s) x$ v0 A( r* |
        {4 z8 ~* V6 ~) v. _5 q
                .active_low = 0,/ @" h$ e) l( N! a
                .gpio = DA850_USER_LED0,
+ \7 q! ]3 N! p! X0 I& T/ n                .name = "user_led0",' H* D) R' r- S# A2 S' E5 h+ N
                .default_trigger = "default-on",' a7 G0 n: C/ `! s& b
        },
4 v# `7 J* Q) `; J. ^- t        {
; Q+ p6 _/ |  H( \                .active_low = 0,) ~0 M- N& c3 S6 T3 Z) u
                .gpio = DA850_USER_LED1,. X- a" D6 T! m, b7 R) q3 E6 x
                .name = "user_led1",' E& s9 _, _; t( T
                .default_trigger = "default-on",
1 L( c& C5 o8 g. L        },' N6 q# }/ ?4 J; H4 G
        {3 I4 |  ]% N& C# S
                .active_low = 0,
0 E3 M8 S) l: u                .gpio = DA850_USER_LED2,. d( x7 i5 |$ v& W' y; A! m5 }
                .name = "user_led2"," j5 M3 a+ v# e( q  K; w
                .default_trigger = "default-on",: e$ |  C( q/ o7 C$ _5 c  ?4 R5 E
        },
6 m& r( a$ Y7 V; C( ~  h% }        {9 X3 A- r6 c/ G& ~
                .active_low = 0,' {9 K2 _3 y! R
                .gpio = DA850_USER_LED3,
- \* `* J; z! b$ Y. L% B                .name = "user_led3",& f% I& {9 o/ q" K
                .default_trigger = "default-on",
9 X9 R- s+ S8 c) |        },
2 J' b3 f! M5 ~  I: V8 c7 g% l" g, f};
; a. u9 }6 @8 X5 Z6 @% w9 _" K$ C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& d+ }" Q4 N2 \# x$ P- F7 f1 q
        .leds = da850_evm_tl_leds,) B/ R) \* f. _. J3 P; y9 n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) z* e* Y: j+ |; X1 E' h! J0 ?};
' V  v- P# t  B  Y. C4 O) e. ~% \& H# ^
static void led_dev_release(struct device *dev)
2 t/ V: f$ u6 r( Z{6 i/ c4 I7 V$ @2 J& R* u
};
0 [, g; Y$ p% K1 R" K# t3 D
, q0 a2 o+ j+ l4 j4 ~static struct platform_device da850_evm_tl_leds_device = {
' e, O( D* _, [        .name                = "leds-gpio",7 A& d2 C& t% [; F4 z& A2 O# v2 }" A
        .id                = 1,3 b  v* a2 j. V+ @2 L/ a
        .dev = {2 X% B# l% _' a5 t) F9 t
                .platform_data = &da850_evm_tl_leds_pdata,
' d7 I$ B' s" B" ~% Y+ {                .release = led_dev_release,
" a4 T! ^$ ]' L# y! k        }
) J& D' M& `+ z& R6 K' @};, [3 S# X. h2 f
) s4 {# r% l5 t/ }
static int __init led_platform_init(void): b/ e  {. X" d6 ?0 i
{  w" L/ N  k& `* M; w5 k
        int ret;
; {5 E' K. N, Y" \# }8 Q& N#if 04 }6 J, U* Y, y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& w- u* w, @0 V  v! ~! Y" @% L        if (ret)) H4 k. n6 N: A6 S& U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# m* Z( a! o: {- P
                                "%d\n", ret);
# P2 ~9 i2 ~' g- }  T#endif
- e3 J3 o: n2 k5 D5 G+ i! r5 d: }* {        ret = platform_device_register(&da850_evm_tl_leds_device);
/ _6 x8 J' \6 ]; z: y; D* U        if (ret)& W4 h+ _# O* Z4 }7 e; q
                pr_warning("Could not register som GPIO expander LEDS");
$ X+ l$ p5 h9 S: k        else) t+ H+ j( Y/ b3 S
                printk(KERN_INFO "LED register sucessful!\n");& i/ |) i, W( a0 p

9 i/ ]& ]& e2 t4 ^* ?: y/ v& P! c        return ret;
% Z5 o5 g8 y( r6 O- K4 [' O' @}! W# R! L7 Q  N; B! h# g4 F* H4 @
% z/ T: B1 j. b  i+ V+ p& @
static void __exit led_platform_exit(void)
/ U) n5 R+ G/ z! H- V: _{
1 L8 h  J1 \7 T1 I" A& d        platform_device_unregister(&da850_evm_tl_leds_device);4 M- V) \! r: X

! F& X# A  Y2 e. w0 h2 \2 B        printk(KERN_INFO "LED unregister!\n");% @% y9 v7 k) l! D1 d
}
7 ^6 O7 Q* c4 J5 ^( i0 r% X5 }1 @0 q7 H( z, u( n+ {! {
module_init(led_platform_init);
! H% |! C; n- [' N8 J- S# ?module_exit(led_platform_exit);
7 H3 K9 N+ K; g5 r5 t6 E& C' b
# M3 B9 r" l* c" j) J. F. F& \MODULE_DESCRIPTION("Led platform driver");% t- S- g) p: K( Y- V) w+ e$ y
MODULE_AUTHOR("Tronlong");
3 O2 i4 R# N6 a9 {, d) oMODULE_LICENSE("GPL");
3 H+ w' r* a4 [3 `4 Y  z( f6 V& V% X+ J' ?* F9 v/ d6 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-14 16:07 , Processed in 0.043036 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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