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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ f5 B1 n, v1 k4 Y, I3 i#include <linux/init.h>" H6 j# ~- A# }
#include <linux/module.h>9 H; i; P8 g# n( Z: N
#include <linux/kernel.h>  d: {8 r2 c1 a- Y
#include <linux/types.h>, ?+ L! g5 m( Q! ~! }+ p% j: m
#include <linux/gpio.h>
1 `7 J* _- i0 s+ ^#include <linux/leds.h>
* |# e% M" T: |#include <linux/platform_device.h>) ~9 T9 r- c% d8 a/ S

$ [2 X: o1 r/ H1 o4 L#include <asm/mach-types.h>
0 j( [5 }. l5 e; |9 Z" `#include <asm/mach/arch.h>  ^% m8 d+ E0 E- R2 A
#include <mach/da8xx.h>
; y8 n0 L' @* n#include <mach/mux.h>
" I/ p. d1 f1 s/ j+ ^9 m6 l3 p* I" d7 [" S2 Q; @0 z  @" d1 ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 x7 P. `6 a% e2 V5 m1 Y2 p" w8 ]
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 W, F) Y+ t- W. U3 _- c4 u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" ?8 q5 L- @) e" K, `' \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 c6 @, c/ D0 \) b1 _( o, h8 M) O( W3 P1 b6 v6 a* d
/* assign the tl som board LED-GPIOs*/" {8 z4 Z; m4 n. |: G3 e/ F
static const short da850_evm_tl_user_led_pins[] = {! i/ e6 ^1 C/ t- i4 {) z4 u+ S6 ?
        /* These pins are definition at <mach/mux.h> file */7 }; Y' d) A3 N3 f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, l0 Y1 B; y( W8 i. i) r        -1$ s) }6 x' _3 b8 r
};  _$ v& t0 u7 X+ Q; g& R% X
3 Z+ G( o3 Y, i; D2 j5 e" i7 Y1 ]
static struct gpio_led da850_evm_tl_leds[] = {
$ P' i. {8 `( b' s) Z        {: |6 Q3 L3 ^1 J( w
                .active_low = 0,& G7 G1 [' l# x/ q8 a6 a0 p
                .gpio = DA850_USER_LED0,
2 h& [/ Q' B* Q: H' Z                .name = "user_led0",
7 H8 A7 A  R4 B! [5 d+ l                .default_trigger = "default-on",4 E& N1 S# v8 W; M6 P" d
        },  J9 M2 d5 f  D2 A5 z+ [
        {
8 K5 {7 p/ U& Q  l) i0 t                .active_low = 0,6 r  a1 V" L* w
                .gpio = DA850_USER_LED1,! h& d# G* d( K3 q/ m6 Z
                .name = "user_led1",7 x7 `! q$ z4 ^8 E( e
                .default_trigger = "default-on",
" ?3 F( T7 F. f* l4 y) T        },
( {+ z+ t, Y0 u! A9 B2 W1 ]        {
9 j% o1 X9 I( i                .active_low = 0,7 N/ d1 q2 q3 ~
                .gpio = DA850_USER_LED2,
$ z1 ?7 I& {9 `0 I' E6 h                .name = "user_led2",
- }$ B" I( v7 _7 K                .default_trigger = "default-on",) e+ f" ?" k8 }  Q0 P# M3 E, h0 I
        },
6 d- c" I% U" P/ g! f0 K* o        {
. N; C8 F8 h8 H                .active_low = 0,
4 J3 a  P9 u3 W8 {& ]3 @. J3 \9 ~                .gpio = DA850_USER_LED3,; v! D3 Q, ]" O
                .name = "user_led3",
( d$ b* }! ~) I  \! c* u9 K# E                .default_trigger = "default-on",
1 a3 S! }2 S+ {% z: d$ Q2 O        },
( I$ a! b4 }! P5 [9 l- l};
) B2 l. u+ t" v4 ]9 ?" q7 ]5 M8 C; O
/ Q: ^9 f' l$ d4 @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' }( L2 v' g3 S# t9 c$ E7 c/ N
        .leds = da850_evm_tl_leds,
9 _$ ?. X' y/ L( Y& y! D! @        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* X! i2 j' ?) e/ Q6 Z. L% I* c% n1 \
};
% B) b" ~  N+ j" |3 v
% _! i# [- q0 G6 Rstatic void led_dev_release(struct device *dev)0 s" q3 p# W% k+ j6 @5 S
{% w0 d0 y4 {7 l; G5 h' [( K
};
( r# U+ [# T4 G3 H. W0 S8 g' I+ ^% @  K. m( b" T
static struct platform_device da850_evm_tl_leds_device = {
3 N/ u9 r: _  [8 T8 E2 {        .name                = "leds-gpio",
4 h6 @. E8 Z# a0 Z6 ~) ~        .id                = 1,* g7 B4 @/ c. m( J/ D
        .dev = {- J. Y, d0 T. P" ^: K( @
                .platform_data = &da850_evm_tl_leds_pdata,6 Y( {  c" ?# W; K) y9 ^: `
                .release = led_dev_release,7 r$ s9 `# L9 c- W
        }
5 B) ]$ ^$ T( Z  @% j: n};
( y% @/ k& S0 f. ~
; l- S8 n. m6 ]7 T4 Rstatic int __init led_platform_init(void)2 x( E9 l* K1 Z% ?2 q, l% {
{0 g& X5 r" C( K' Z2 m
        int ret;
" [2 v1 T' x+ O4 I. M8 e8 q#if 0
5 n+ ?+ p- y& A3 K$ ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 J, L' t6 G2 M$ s: _4 _        if (ret)1 e- H9 X" i$ i  t* d" s2 g$ \
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# d+ j  @7 g2 b8 o7 N; G6 v' d                                "%d\n", ret);; D$ T! x3 ]0 v$ L
#endif
0 ~% ~3 n& Z' d% t0 ?- |; y& t% a9 j- q        ret = platform_device_register(&da850_evm_tl_leds_device);
# f. J+ U0 q, C, x        if (ret)
( C# j& e; q3 `! _& s5 i                pr_warning("Could not register som GPIO expander LEDS");
; R. a- E& Q4 H7 X' E$ |        else
) x+ x0 x  `5 f                printk(KERN_INFO "LED register sucessful!\n");
# p0 {' G4 k7 f* I0 v. T6 P  _" W/ X  a+ \
        return ret;* I7 O- H7 t; E9 S
}+ }, v$ E  t2 x2 I' F. G- |

2 b+ u" t* b# m$ Hstatic void __exit led_platform_exit(void)  }2 x7 {3 f" B7 S! h, |5 m" V
{' S: D# q; R6 D, a! O6 C9 j
        platform_device_unregister(&da850_evm_tl_leds_device);
0 t+ s' y, x1 X8 r
: Y1 O" E; s2 r! E$ h7 G& S9 m        printk(KERN_INFO "LED unregister!\n");
3 \- q$ f1 Z' D+ Z2 l( I! H0 l}! O2 H2 \, F2 [0 Y
$ v/ p7 g# B, k1 u2 c& N
module_init(led_platform_init);
( R: o, @. d3 O9 h# q9 Omodule_exit(led_platform_exit);: ]# r$ D2 m+ L3 y
! d% K* Z% X& i% @( r% b
MODULE_DESCRIPTION("Led platform driver");& h4 c. y3 E& `4 }' Y: N
MODULE_AUTHOR("Tronlong");: B7 ^" A- F8 F. n+ i
MODULE_LICENSE("GPL");. S8 V$ W' ^# I' X# S3 h/ J
6 O+ N$ A9 S: ]. _/ s; J8 S& O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-10 12:21 , Processed in 0.040231 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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