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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ D" o/ J7 @4 q; e#include <linux/init.h>: C; c1 P( z! q2 \8 {3 @
#include <linux/module.h>
4 E' f* n. [. U& v#include <linux/kernel.h>6 ^; `2 e! l, j' v2 ^2 }0 {
#include <linux/types.h>+ U# @4 w3 W% E: b, |, U
#include <linux/gpio.h>
4 v" ~# z! l5 u, D' T7 \#include <linux/leds.h>
2 ~+ U9 u; ?$ g4 E5 k/ b#include <linux/platform_device.h>
7 L8 E& W/ q& r5 c- T3 u1 q3 o& ?/ ]. d  b% B3 C8 J
#include <asm/mach-types.h>1 i6 Z  G+ A% X. S
#include <asm/mach/arch.h>
* \# A8 D" T# D' {+ i#include <mach/da8xx.h>% U! D+ m! X7 M% m
#include <mach/mux.h>
3 Z6 ~, @/ J& O- r* ?. L+ h2 `; B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)3 \) C. N( M% ?% p3 ]
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 u& ]4 ]7 x1 x8 C) ]/ @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, Y3 J: ?' m. z& ^, i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# D9 K) o+ v& u# J
( ~' D1 V5 j& c' Y8 x8 Z/* assign the tl som board LED-GPIOs*/
$ G+ T) u% z- Lstatic const short da850_evm_tl_user_led_pins[] = {
! f" Y, J7 U" f8 U' l" ^4 G% ^        /* These pins are definition at <mach/mux.h> file */
5 c; k6 Y2 F6 a* c6 n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 x' P. S& s% q8 l/ n4 c; ^7 ~        -1/ I7 Q3 `, m! @  N1 ]/ \
};% Q9 Q: f7 ?  Y4 |

8 K! v1 x! T2 F0 j- O) d9 Sstatic struct gpio_led da850_evm_tl_leds[] = {# p. o1 H: B1 n1 z" }: y
        {. f7 o. z8 }% {( b2 k$ W" J# f
                .active_low = 0," [  }) ?4 h/ }
                .gpio = DA850_USER_LED0,2 a/ O0 X; N; {( g* j3 s: g$ `
                .name = "user_led0",* f& O; l# D7 O# X" m+ R# b" h
                .default_trigger = "default-on",* q3 v3 [8 _) ^' J( T
        },. w8 d/ Q4 ]) l1 `
        {; I8 V0 d; u/ D/ ?! ]9 O; e
                .active_low = 0,- c  |" L+ B# P& N7 E; x
                .gpio = DA850_USER_LED1,
/ I) r" O  A9 L3 o8 h8 E3 V                .name = "user_led1",4 B( d3 {  }; M/ U7 [
                .default_trigger = "default-on",' {4 j( ?5 p0 W2 M) a
        },, r/ n. K9 R* R9 v- }/ W
        {
9 w+ [4 B% F4 p- t5 S                .active_low = 0,( X! t# i8 r9 x2 u
                .gpio = DA850_USER_LED2,0 g) E+ n" L2 r, x5 ^; {$ ~
                .name = "user_led2",' Z2 g0 L; I7 v) \
                .default_trigger = "default-on",
2 g" w" Q' G! ~" t' `: y        },1 t5 A* A! {0 Q  r$ D6 {
        {
( r$ p% Q3 P$ A0 `' a                .active_low = 0," q) _  {( ^4 b, \! v6 ?
                .gpio = DA850_USER_LED3,
* e0 V/ G$ t% n8 B) S! _                .name = "user_led3",0 ~3 Q+ V. y' C7 n, J9 p
                .default_trigger = "default-on",
6 [  |+ e; a" L$ K; w2 O        },: K6 @' e0 f! w
};( G3 G2 k& Z3 ?& z7 [; Q5 u6 q
, l+ u; i) s; a3 E$ t! n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 \) I" o5 O% N3 R) u
        .leds = da850_evm_tl_leds,, C/ @- ^0 ?; W6 }5 A  O- N" _
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 b  b( `/ O4 x4 x7 G
};9 Q& W  N. a) L( n: F8 J
) D! E+ E4 `  \4 x
static void led_dev_release(struct device *dev)5 ^: Q/ [1 m" \( E6 r
{) Y( [6 }+ e9 P! l  b* Y
};
7 l2 _5 u- C- p/ z# P8 S8 X9 u
9 y7 R5 Q8 Y0 C9 B( e. |" k+ hstatic struct platform_device da850_evm_tl_leds_device = {
/ U& h. m& F. o  N, D& r1 Q        .name                = "leds-gpio",# c, G: F& }- [
        .id                = 1,1 h$ f4 Z: \4 g9 w2 P% q
        .dev = {9 h4 t8 e& f2 L2 p( e' |
                .platform_data = &da850_evm_tl_leds_pdata,, @9 b6 o& C  {, w
                .release = led_dev_release,7 f! @% p3 C5 {
        }
1 K* o# s2 I3 G( n4 @( H  R" q};" w4 ^: V4 M. p0 C( `
9 z* V1 w$ P8 |; w
static int __init led_platform_init(void)
, Z4 r1 c% R* ~8 ^/ C6 ]# w{9 N: K( a+ a6 w" j$ `
        int ret;
3 v5 k- R- p# ^- v/ X#if 07 Z5 L& f; P1 z8 e. }# H! U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' K) S8 i. |7 A( Y        if (ret)
; t* z$ C+ m- ?+ x. d* }. L, g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ d/ ?1 o! N, h, t1 X  n- C                                "%d\n", ret);
* m3 R+ G5 i) ~3 Y' S+ |4 T#endif
" M9 _6 M, ~) y: \        ret = platform_device_register(&da850_evm_tl_leds_device);% ?2 w& D0 `/ A+ B
        if (ret)! P  j8 P( q& I6 }0 M
                pr_warning("Could not register som GPIO expander LEDS");
. M3 |* j) R- I        else
! g/ z, F' q4 K$ b                printk(KERN_INFO "LED register sucessful!\n");7 D; b, e8 u0 `4 X' K3 W

$ }6 R( {/ z$ ~7 P5 a( i        return ret;. Q1 }7 l9 y; u  i% M
}/ G& c6 Q5 _7 [1 [0 i: o/ t
- R/ W# d  Y+ V9 L$ J+ }+ r
static void __exit led_platform_exit(void)
) L/ h& R, Z. k{
& }0 x9 j( x4 W# @& q        platform_device_unregister(&da850_evm_tl_leds_device);
3 Y8 p7 a& H+ p, x2 I( q
- ]" f( O" _& h! o        printk(KERN_INFO "LED unregister!\n");
/ C( Q6 [2 |! W8 i6 D" F}
4 v( G: s! n( z  E' h# @3 s5 m+ S: X
) j6 A$ \9 O7 z+ u$ Jmodule_init(led_platform_init);
0 R4 `& }# H; ^/ A* R- Y$ Ymodule_exit(led_platform_exit);
" T" U! d6 t' F' X1 Q# ~. A! z4 C
$ X2 R' d. g7 n6 _% r& a% xMODULE_DESCRIPTION("Led platform driver");( |% n5 r# k8 X! }4 J
MODULE_AUTHOR("Tronlong");
9 f% |/ C$ Q/ E% s$ s( z/ qMODULE_LICENSE("GPL");5 S# x: Y2 R+ f$ w: O
4 z% ^, w5 k0 j* R9 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-10 14:39 , Processed in 0.038989 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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