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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& _9 o5 c. J" N! {/ W
#include <linux/init.h>
6 J& S$ L- S4 x6 W- A6 K) o#include <linux/module.h>
/ x3 }+ X+ e* x* |6 R" P#include <linux/kernel.h>  ~" k5 a6 l4 k3 l3 d4 b
#include <linux/types.h>5 l0 E% x8 e2 z( q
#include <linux/gpio.h>) k* H6 ~+ ^/ m  {! X/ d, P
#include <linux/leds.h>% N$ S1 ]/ n' J; S$ Q. s
#include <linux/platform_device.h>- k# ^4 }6 D2 |
7 `/ Q( x4 E( d' Z
#include <asm/mach-types.h>2 q3 ?* ?5 Z/ n8 ^
#include <asm/mach/arch.h>. N0 q* V2 P( u% u1 ^# w
#include <mach/da8xx.h>
: H3 a' ?$ B# m& P* Q& W; ?4 N#include <mach/mux.h>
3 P) o  \1 p- I. x, v/ {4 _* @/ K( F! r) O( _
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 O  C" b% _2 k) l# j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ S( [7 N% a; O6 R# ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ |. `, T) L  ?/ d  t- k. r8 i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); g% r* Z$ R  W  [1 P! k

4 g  E/ }4 o% `7 Q, W9 S. i  C/* assign the tl som board LED-GPIOs*/5 \& h: }# M# d
static const short da850_evm_tl_user_led_pins[] = {
9 n& c; L& X/ Q4 g        /* These pins are definition at <mach/mux.h> file */' n$ U: T9 d; K) p; M& m# T. s
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- y4 a* r. K$ ?" L9 q; q# p: A. m& M        -15 O7 y3 x; \6 i3 U2 K8 r9 h
};/ \* }9 G' Q' j% Y# V

# v( e5 H  [* hstatic struct gpio_led da850_evm_tl_leds[] = {, A  m) `# {' O. r1 q& o
        {
0 @% ~' n; s! Z" D# F+ b                .active_low = 0,
4 O, d2 A: r) r/ S, T; K                .gpio = DA850_USER_LED0,% {' e! D1 W. |; M+ T
                .name = "user_led0",; i( Z" V' Y* W) j" W: \
                .default_trigger = "default-on",; C* F  o9 h; g7 s
        },
' w. G& K- c) |0 Q. S        {+ @% ?) f3 j9 c. ^5 B1 O
                .active_low = 0,% a% i, D& S. Z, P* o9 g1 ?5 G
                .gpio = DA850_USER_LED1,- r( x  j7 {- C' l+ Q
                .name = "user_led1",; b, i2 {0 a0 q+ S: E9 }0 G
                .default_trigger = "default-on",
; L3 J% j/ d% G        },2 o( b  ]8 s/ ~; e; W
        {# {$ b# A/ `3 ]  K
                .active_low = 0,
$ A; p) x/ v# a5 q( R6 @4 z/ M: B8 e                .gpio = DA850_USER_LED2,6 D  @3 Z3 P. {+ z& e
                .name = "user_led2",, J- c6 [' m: p+ x* X* Q
                .default_trigger = "default-on",$ b, {; e' L* t$ L: b, ]
        },
0 d3 Y5 ^+ C6 A4 n; `6 E        {
4 B9 l+ b# C( L3 _5 B) ^                .active_low = 0,% S. D8 n( g% u5 \: H+ C$ }- d" K
                .gpio = DA850_USER_LED3,6 E- h" v/ L, W  b& h; |7 m
                .name = "user_led3",
3 ~% ?3 J, n. ^& @                .default_trigger = "default-on",& j* w; U1 F2 g. H0 D
        },  ?( b7 A& N. A( r1 q
};
9 x" y3 _$ i6 H3 x. o
4 l: |2 f. g) T! k2 ^$ F- H& d' Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
" g* R2 O! L/ n" S+ o        .leds = da850_evm_tl_leds,
6 h7 T2 ?. u& b4 U8 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 T1 L9 S; v$ O+ [};
! L2 l7 v, o' H3 m; I; S5 u5 ]! ~4 j0 f6 i; G  w
static void led_dev_release(struct device *dev)
  y6 s% \; N8 m6 I( V. Z5 @{
: r  N# G" q0 ]( ~0 G/ D: h};
; h# H/ D4 h. \& i- J6 l2 h" m* C4 S; |" Y6 I1 L' R+ h9 y, C" i/ B) D- l6 y
static struct platform_device da850_evm_tl_leds_device = {5 C: b( E+ ^8 k* N2 {: P
        .name                = "leds-gpio",  ~9 w+ }* E2 x
        .id                = 1,9 {) F; m6 K% B: w, w
        .dev = {& g) K3 a3 x: p; a" H
                .platform_data = &da850_evm_tl_leds_pdata,) K6 r% [7 J% P- Z5 g6 ?+ ^
                .release = led_dev_release,, N4 U( X+ }4 e4 D8 D* r
        }
0 C  x5 @" P" [};
, ?5 p: N; T8 F2 H* }5 [& ?. Y( ?  N! y1 V  a+ \) a' v
static int __init led_platform_init(void)
4 ?5 c  Q' u5 _{
2 [( x/ t9 g$ X' I) [! \1 C        int ret;3 Q; c& L1 I, C$ H2 J* v& s
#if 0( Q# z# h7 R( ^& U) V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ C1 |0 x/ b1 t2 w, v* }. Z5 T8 _( e        if (ret); O- F3 v/ m7 o9 b
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 B( K* l; A. _9 R* u
                                "%d\n", ret);
) q& {6 @* X6 n' v/ I0 m#endif
# @0 ^: `* y3 i& V  x        ret = platform_device_register(&da850_evm_tl_leds_device);: V& e6 D; N0 C# H9 {
        if (ret)
" C7 \# n) B- w1 l                pr_warning("Could not register som GPIO expander LEDS");
/ Q- [+ _! b& O  `* c. a$ l        else5 W$ c# q$ r; q
                printk(KERN_INFO "LED register sucessful!\n");
( G3 ~5 d- z( Z. h1 y+ l! Y/ l( ^" w2 ]! {& O
        return ret;
2 s+ Y1 |2 a* [7 w' C$ r" y3 g}$ \2 n1 @  i0 p+ X( ~. u

+ b: B& K" W, e1 f4 k7 ustatic void __exit led_platform_exit(void)3 _: b/ l) q; m4 C
{6 @& p+ C. q9 K! B% m
        platform_device_unregister(&da850_evm_tl_leds_device);+ a) T: }, l& K0 l0 {
/ R0 s) C. K5 w+ R/ Q/ n5 n; e
        printk(KERN_INFO "LED unregister!\n");$ D5 B  I, E" k: y
}
" }' J/ c) E4 I4 A: B+ x2 u0 L: i* k
module_init(led_platform_init);0 L, y9 I/ p$ Z/ N8 l
module_exit(led_platform_exit);$ A1 `8 B( @$ @% i4 l

. T- i3 S' ?5 I3 J+ ZMODULE_DESCRIPTION("Led platform driver");7 V: }' G* D! B) d& f* K
MODULE_AUTHOR("Tronlong");
+ V( ]4 h( Z( q. sMODULE_LICENSE("GPL");
+ k. B4 j6 O8 {9 I1 }1 M+ d8 v- v4 F( Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 05:10 , Processed in 0.044466 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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