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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% j8 N! `& H! t% j3 P" f8 C; A
#include <linux/init.h>& |; F" r' R2 y, c% M, S
#include <linux/module.h>
8 E9 Z( G+ N9 J# H* v, Z8 ^#include <linux/kernel.h>, i" ~( s; e5 ?8 E
#include <linux/types.h>' h4 `9 T; X! {) \0 Z9 U" k2 s
#include <linux/gpio.h>
+ I' U- j, o! o# M#include <linux/leds.h>2 Q& R1 U1 l! B% F
#include <linux/platform_device.h>' d; p; _: b' s

# p2 o* r  q& A0 t#include <asm/mach-types.h>  e1 s+ F! H# M4 [2 b1 s
#include <asm/mach/arch.h>
; h  G- u# Z+ x' G; ~#include <mach/da8xx.h>
% I* C5 S+ L$ \- Y: m* t- f#include <mach/mux.h>
0 S, O& t, `$ a* o4 A) S7 M. n/ r$ ]/ ~
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' ~  x& [/ ^- r0 C4 B1 Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 h7 w0 P; Y# ~; r" A
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)6 t" s+ v& z& ?, ~3 _4 V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% H1 k2 |- w) b0 X7 G5 v
8 u# T. y* C2 ?
/* assign the tl som board LED-GPIOs*/) Z" |' R8 H! {5 d6 m
static const short da850_evm_tl_user_led_pins[] = {
, a+ y" T. O/ Q6 J7 Q5 d        /* These pins are definition at <mach/mux.h> file */
  ?  c) [5 Y/ N9 Q5 U8 X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- ^) X" e1 S6 n1 ?- p9 h
        -1+ E7 m+ Q" F4 V% L& h+ A0 F) l3 h
};
" u  {0 `; k9 g, A6 q' ^. \# [2 v8 J5 T! d- `9 P! P' L1 {2 n
static struct gpio_led da850_evm_tl_leds[] = {; R' Y, q/ I% g( U0 A& V( K5 A9 ~- E( k
        {
' s5 b* z0 v* Y0 S                .active_low = 0,/ H: s% O# c4 B" D8 a) w, a
                .gpio = DA850_USER_LED0,
8 j$ `6 o& Y* \! z+ X& N                .name = "user_led0",6 V* q0 B& ^2 l. Z
                .default_trigger = "default-on",7 O; Z0 r0 U! y: W7 z
        },
6 Z) {% m( p# }1 ?0 l3 a# g        {
7 F( ?2 u) N& u" o5 W                .active_low = 0,$ j, ^* ]  B7 v0 w4 B
                .gpio = DA850_USER_LED1,
. \* Z9 Y* o" s  N" m                .name = "user_led1",
0 J/ \2 m% J- U# Q9 ^                .default_trigger = "default-on",2 ?  j& A, K1 x; c. J+ O2 W
        },
( ~$ C2 c8 J$ t        {. O3 h4 T8 X0 N$ |) O( K
                .active_low = 0,
+ y" [4 p0 X7 i5 ^                .gpio = DA850_USER_LED2,5 k0 h- |, }" G" M
                .name = "user_led2",+ b4 u3 }& h* j: E7 v
                .default_trigger = "default-on",% H' @% b' o$ Z2 b% e% P8 H# G
        },
- j* ^7 Z2 m" y" B        {
" Z9 O7 J/ d6 z, e                .active_low = 0,
4 d# _* S6 w, A6 f                .gpio = DA850_USER_LED3,* E2 L; I1 A- q9 f0 h
                .name = "user_led3",
# H, E6 ^& W; ]! p* y+ z                .default_trigger = "default-on",# `/ U  t$ w$ d/ |0 `
        },
% I+ @; C  e+ H# L4 p- e& G0 W};
4 G. X1 Q' _$ |4 @+ f6 O' c! b
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% q7 B. ]+ Z& p/ n7 S        .leds = da850_evm_tl_leds,
( l( {  w  q2 S/ ]  g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- w, R) U# _, O) T8 h};
' Q- r4 C" w# V& T: O
8 F* O8 o' E6 kstatic void led_dev_release(struct device *dev)
. q& `3 n: e8 l9 h{, }3 A) ^8 B/ L' i# u" p
};+ N2 z" J$ |2 u2 h1 S) r
4 e0 @. L+ u4 N& m# P3 G
static struct platform_device da850_evm_tl_leds_device = {5 B+ [) b4 \4 O' p8 I( S" y" M; M4 g! P
        .name                = "leds-gpio",! [( B' b' C6 W
        .id                = 1," `7 J4 U* I" R1 r* N: |
        .dev = {7 `) S3 c* H! N; [- ~
                .platform_data = &da850_evm_tl_leds_pdata,
0 h+ i8 C* Z: C4 I                .release = led_dev_release,
' W% p) A3 t  W3 F  J' J        }/ [( W: C' u9 Z# i4 A& S
};
- n# A8 c5 K; z0 H1 ]& m; e
0 R4 P) T& o9 i& v5 c8 u/ g% ]static int __init led_platform_init(void)
0 D$ I+ Y1 O1 v{4 ~9 X) K; A) C5 {0 z# G
        int ret;& e! S3 K! x/ d  g! R
#if 03 I" [; f1 B% r8 ?" i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  Z$ u! B8 l  _# d0 W* j+ u        if (ret)9 [, H  ]# b0 A. @
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") O4 e% Y" ]5 |# x1 S- K( I. p
                                "%d\n", ret);: B# q+ s0 x7 ~  q
#endif
" z' F( [; Y$ ?7 n& f        ret = platform_device_register(&da850_evm_tl_leds_device);) V1 c0 U/ h& R" e
        if (ret)
5 u; d$ g( u7 p4 m: T                pr_warning("Could not register som GPIO expander LEDS");% J2 F" u* T0 Z; A
        else
8 f/ L' f3 P" O" D8 m' D2 Q                printk(KERN_INFO "LED register sucessful!\n");
: q6 D3 t# B% Z( M0 t  \
* c5 ^$ z& Q: v, F0 d+ m" A( h        return ret;/ f4 R8 z: U4 J4 o2 D# y" ?
}
" T1 q( n7 q( Y; }! y% d9 x# x/ r5 f+ I
static void __exit led_platform_exit(void)9 Q7 T$ X4 j3 W
{
. N# c9 d+ A# x# A1 w8 x5 D0 e        platform_device_unregister(&da850_evm_tl_leds_device);
5 o' ^3 {1 C% f  k. C$ p9 n  e3 N
        printk(KERN_INFO "LED unregister!\n");0 @* k% D* b  a3 I
}8 n; Q4 I; e, z, y0 g3 v8 `

# p7 z) D4 b3 B. {9 P" bmodule_init(led_platform_init);' b% @# o  i: m/ |: i
module_exit(led_platform_exit);
: u& k- _+ F4 |) V9 ?0 o. [  x" E
$ u% [( n( q- zMODULE_DESCRIPTION("Led platform driver");
/ a. J8 D: o; ^7 J) NMODULE_AUTHOR("Tronlong");, i4 O! ~& u! M" r1 `# x  S% ]
MODULE_LICENSE("GPL");
" r- U) _* n9 H9 p) b: n8 J7 r! D2 v) M) I) p: ?& ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-8 21:31 , Processed in 0.043635 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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