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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ ?, N3 \4 f' C" E, c1 k/ x
#include <linux/init.h>9 C# C" K$ u! \& [
#include <linux/module.h>9 p* v8 f6 h$ {
#include <linux/kernel.h>+ \2 @  v- Y; j' a
#include <linux/types.h>8 [0 z  Y1 p$ p% I$ k7 N; z; C
#include <linux/gpio.h>' u# w2 X7 f# Y, q9 O& \
#include <linux/leds.h>. J3 J% g+ A9 ~4 L& E) q" c
#include <linux/platform_device.h>7 l' n  {; g, A0 S, b# ]: s

+ q0 j& o2 N( N1 s- U$ ~#include <asm/mach-types.h>1 W0 H6 w) H$ f$ K# u3 k
#include <asm/mach/arch.h># A" {( F! w0 O8 A
#include <mach/da8xx.h>
3 q/ F5 t" w; R1 v  h* O#include <mach/mux.h>! g0 p. W7 z/ P: H( D
9 {5 K* r" P3 ?% i4 f
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). m  ], P" }' d4 N; B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" x  b& ]2 ^' ^. j3 t
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! ]3 x% Y2 v! m# y' W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" i+ ?0 a. m8 r  L1 |3 I4 b

3 Z/ J  m: x  m3 c4 X2 ]4 {/* assign the tl som board LED-GPIOs*/
% o  H' ?* l/ Z( x8 ^& qstatic const short da850_evm_tl_user_led_pins[] = {  Z; y2 I1 t+ L& b
        /* These pins are definition at <mach/mux.h> file */. h9 X$ R- C! U% o
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( q% B: i: Z' j6 W" @& G% y        -1
: b5 `1 c) M) T) N};
3 O) {2 O4 h2 U$ c& B
% w9 j+ y6 T5 Q& bstatic struct gpio_led da850_evm_tl_leds[] = {
7 v0 w2 J5 }. L+ x' m  J0 o        {
- R9 i, |0 P4 V* D) t7 f                .active_low = 0," t. {2 i( O& X8 g% z
                .gpio = DA850_USER_LED0,0 q  [6 ~( C. k8 ?* j
                .name = "user_led0",6 E! G) |, l$ C) S
                .default_trigger = "default-on",9 g! c- c/ m1 i: k& o9 F1 H9 L
        },& }- |$ x/ [* |3 Q8 |; _; ^
        {7 q2 t; P# T, O+ T2 h
                .active_low = 0,- W# ~# s+ h" l
                .gpio = DA850_USER_LED1,9 m, ?) d1 u9 ?# d. g/ Q; ^. U
                .name = "user_led1",( Y8 r/ g% O' y4 K7 H" P
                .default_trigger = "default-on",
, X0 C+ N! Y) Q4 E        },
- x% i& [: M- [3 d% l! ~6 T9 Q; k6 f        {% q, l; r$ k# q* s5 k( E# A
                .active_low = 0,
- {4 o$ `  Y* D9 C- D                .gpio = DA850_USER_LED2,6 w( Q) a( \, B) i+ Q/ \
                .name = "user_led2",2 J5 t- n; Z. e1 X9 n
                .default_trigger = "default-on",# }6 i3 A' m3 S, y& {
        },! i+ d& x  {, r3 ~5 j( h
        {
% p2 q  j$ Z$ g: J& [9 ]                .active_low = 0,! |; \5 d- t. b( }
                .gpio = DA850_USER_LED3,  u' U4 S! q: D
                .name = "user_led3",
7 B4 r! u+ s0 g: ^                .default_trigger = "default-on",% R5 H7 j, A& D5 ^+ q5 t" M  t
        },% r& J( Z1 L7 c3 R, b8 _) F8 A2 v
};
4 s1 h$ M2 |7 V6 I
, W( T. J0 _9 Lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ I9 d4 Q3 b" b; j0 K% B        .leds = da850_evm_tl_leds,. J7 p' F# g8 B
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! d! H' \& I2 d};
3 B% p0 }' U$ e, O  m5 Y: x% A8 k3 d" U# R( R8 J( z/ U$ a9 J% P/ q
static void led_dev_release(struct device *dev)
$ _. _% G6 o/ J) U" z( _7 C{
" e+ m- r/ Y& ~6 |# a# T4 W5 v: ?};
" G2 c7 m5 X8 g* p. u& m& E  r# o
static struct platform_device da850_evm_tl_leds_device = {/ Q9 P* S0 ^# B1 u5 K- S+ A" b
        .name                = "leds-gpio",
( C* M0 @2 i4 o0 }+ `* X        .id                = 1,5 ~* l. w% ?) c* u( W! `
        .dev = {- r* _3 J$ [6 D- E
                .platform_data = &da850_evm_tl_leds_pdata,
* T: }, Y. S  @: x1 ~& o                .release = led_dev_release,
  o, G0 m' \& l3 K7 G. D        }3 h6 ]2 }/ k3 O: o; T' |
};
2 F8 N, t* W; {: C5 b
$ p2 ?' y8 \  A% K& c6 vstatic int __init led_platform_init(void)( q  z; r1 ~* p& @- X  w/ y
{
. u7 I) P- w7 t. T( ~5 e0 j        int ret;
9 z/ s: u8 e- Q, }#if 0
# j# i) R$ Y. q" D, ]0 b/ _! q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" {1 c, _6 {2 F
        if (ret)# e- j0 Q7 l- P: N. f- F1 T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  m- q$ H# f- a$ b8 P                                "%d\n", ret);- f7 A. a* c1 t( m
#endif5 K0 `7 @! P) {* r$ Q5 g
        ret = platform_device_register(&da850_evm_tl_leds_device);1 [" o, e' g  U
        if (ret): K/ p7 B& ?7 T( I
                pr_warning("Could not register som GPIO expander LEDS");/ _- Q: T) u, d
        else, m7 ]. B& D1 d7 F
                printk(KERN_INFO "LED register sucessful!\n");: p+ M1 f# m0 E+ N. Y
; L2 s& I' _& B6 R' E
        return ret;8 m- p! f" Z/ k' b! u) z+ G
}( t6 [- R) n+ s5 O

+ d, x4 i5 N' P" A0 Z; q/ m; kstatic void __exit led_platform_exit(void)' R4 d2 J% z; }  Z2 M
{' l/ z6 N; K4 _* n, |
        platform_device_unregister(&da850_evm_tl_leds_device);, C; D+ b% K* F. p3 V# t# t$ u

5 g* P. L) X* W% y( {' n" f! I        printk(KERN_INFO "LED unregister!\n");
4 _) ?2 x5 I# v  A}
' u$ w& I- W% F1 S/ ?0 O) Z+ c2 V0 D( p& a; e  ?1 t: l5 d0 N
module_init(led_platform_init);# b3 f9 N( W+ S- F; J% _
module_exit(led_platform_exit);
+ u" j; Z, G5 I& g+ g3 ?' \# Y# j/ n) \* R: c
MODULE_DESCRIPTION("Led platform driver");9 O* |# T! h9 E0 g0 _
MODULE_AUTHOR("Tronlong");2 l: ]' z; m: A: S- Z
MODULE_LICENSE("GPL");
6 K: e8 F0 a+ }6 c$ W2 x; R2 v) p/ ?2 o3 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-25 10:25 , Processed in 0.037818 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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