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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; \  O& P! Z# p# ?0 @5 v#include <linux/init.h>6 n1 Y- P* A, W$ j4 Y
#include <linux/module.h>
( u8 D; W# Z' q, F% u$ o#include <linux/kernel.h>7 k" p/ N8 I* d) ], e  v
#include <linux/types.h>% }3 h; f) V" F9 x9 X  l+ z
#include <linux/gpio.h>
5 R, k% v# K* ^0 c* i3 z#include <linux/leds.h>
$ b' H8 D! H) k' v% }. g4 q#include <linux/platform_device.h>
) F+ |+ ]4 P% M" `$ C+ P7 B; d- R- `; J/ c' u7 r
#include <asm/mach-types.h>) h) y8 C' k$ ?' o6 [; T( q
#include <asm/mach/arch.h>/ F1 M6 T, p, \
#include <mach/da8xx.h>
, N0 q6 c$ q# R' ~3 p. ~  }8 K#include <mach/mux.h>
- o5 A* Z! \8 K% F$ v& f5 n  k9 r
1 C: ~7 z4 B3 u, W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" H8 c) [# ^  K& ]0 R5 w: ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) @! v$ H: S% ~, E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" e% L, ^* a% W1 v9 z; r0 A1 N! K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 h4 p& o9 w! ?

- ?* L3 c  Y) z" r) |! Y, Q: F/* assign the tl som board LED-GPIOs*/
4 s5 R0 H" z7 ?# @static const short da850_evm_tl_user_led_pins[] = {
& E! O& ]. u& L! }9 y        /* These pins are definition at <mach/mux.h> file */
( B9 j6 |7 y$ |: `9 t        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" K* q. u) ~' B; ?' L) V  z: o        -1. ~9 \% ~  i/ O. Q& |0 e
};
" c5 V% u# L* D2 H, D0 _7 V. Y8 s) L9 n) h; g
static struct gpio_led da850_evm_tl_leds[] = {8 U, L+ X  O$ J! X; L
        {" j- ]# c/ d' h* j! |' l  E% m
                .active_low = 0,
5 b# K2 W) O5 V                .gpio = DA850_USER_LED0,
' K" I2 M1 t' T5 r$ U& k                .name = "user_led0",
6 D5 \; R! \! J* y                .default_trigger = "default-on",' `  G4 l* w6 [: T
        },
) A- j% G2 R/ Q% r' ^5 Q        {
0 g  d; x( }4 {                .active_low = 0,5 l# w5 M0 r5 K! r0 F% z
                .gpio = DA850_USER_LED1,
$ \* z1 y' {3 t9 B0 g                .name = "user_led1",
: e; E: }0 ?/ i2 r3 ~                .default_trigger = "default-on",
7 n+ U& f( R& x        },
3 G2 N3 f% K% S3 K% v$ i8 o        {
  [9 v4 c5 W7 t5 Y8 S                .active_low = 0,. e& n& W1 n$ D3 ^, s; H* J7 K& p9 j8 J
                .gpio = DA850_USER_LED2,! G7 m! Z& R' H- E; s  }. L4 |+ g
                .name = "user_led2",
) o( _; F5 Y$ z* b: {                .default_trigger = "default-on",
( P% i- S+ [* B) _) k        },* w/ E5 [5 r3 r  S: h$ G8 s
        {1 i: M0 K" u: t, `$ G" N
                .active_low = 0,
2 d$ f5 ~" P5 U+ t                .gpio = DA850_USER_LED3,
* A5 P( B9 V7 g0 X; G                .name = "user_led3",
' u2 \. d- [# T, ?                .default_trigger = "default-on",
, `0 i% Q; r' C9 ]: w( w        },1 j# U! K& v' T* Q/ \/ n+ \  ^4 q
};
- r9 x# }! {8 Q4 f
( x0 H/ K  W& G& ^6 M3 ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 L7 ^# W$ b* e" }" h& J
        .leds = da850_evm_tl_leds,/ h: z6 o7 {7 ~! z# c- {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% X4 W/ S& U: H' Q! [- Y  ?
};; i+ k  M% ?. W5 f/ ]! k

) ~/ p$ W6 ?' t* o7 zstatic void led_dev_release(struct device *dev)
- @0 u  q/ V0 \7 ]4 f" w. d2 o7 F+ q% s{$ J% I; Q0 F% w! |2 \
};
( M8 I- x( W6 c* G8 `1 J7 \1 b, ^% V* Z4 o8 q, r
static struct platform_device da850_evm_tl_leds_device = {! l/ S5 {: J0 a% C( v5 h4 X! X' z
        .name                = "leds-gpio",7 Y5 ]7 Q2 b( s" _9 r. D6 Y
        .id                = 1,5 ]4 n4 V. A8 y$ G; M& M- g7 f
        .dev = {  D8 S* e/ ^: L. k7 n
                .platform_data = &da850_evm_tl_leds_pdata,, K3 _( y" C- G9 W
                .release = led_dev_release,8 _$ j8 F2 h6 W  M+ Z  {/ B! B
        }7 ]1 B- w5 o4 v% `  v% X3 N6 S
};
: i. I$ Y3 _/ o' O8 s
9 [. E0 B: _2 \6 W( q4 T- lstatic int __init led_platform_init(void)) `# t9 g/ o; \: F2 c+ b
{: q/ U! M) Z/ L; ?+ N: B; X0 j
        int ret;
% l  F* Q" X% {, x8 I2 |; F4 q#if 0' o7 L( L1 g& ]( Q" l
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" }( T% |. O7 C
        if (ret)4 X" l, L: D9 g, G- ?: V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& y6 E- \, Y  b2 I                                "%d\n", ret);
1 a3 T+ v( H6 T$ Y5 [5 k5 i  z#endif  k* y% |; N& s7 A% B3 U' ^
        ret = platform_device_register(&da850_evm_tl_leds_device);1 w- [9 R9 X  Y, w
        if (ret)
* l2 R- b. G$ s" M                pr_warning("Could not register som GPIO expander LEDS");" O8 S8 U8 z: |! a+ y. M' a  u8 _6 J3 X
        else6 [  I* F1 J, ~2 z+ W5 X
                printk(KERN_INFO "LED register sucessful!\n");
9 h  i' R- f! a5 C
" y; W- {* s8 {& ^% [        return ret;7 a8 ~5 C: `# _6 f% O, h/ G7 k: O* d# G
}. ]$ `! E& b9 O( I
  M( P4 T/ i  s/ j) g8 h6 ?
static void __exit led_platform_exit(void)
# p  E* @& M( J1 x9 M; Q! P/ Q" A{$ {* A7 A2 {: d) s5 R/ m
        platform_device_unregister(&da850_evm_tl_leds_device);
- o$ L) L# g% x7 l9 e1 z0 G, ]
* U% |+ ?' Z" J6 L) T        printk(KERN_INFO "LED unregister!\n");3 }* N( z, O* o" l
}( @1 q- V( V5 h
; w, n) i' O+ s% e
module_init(led_platform_init);0 |0 ~) Z0 O1 q6 t" F1 `* M9 T! V8 |/ r
module_exit(led_platform_exit);& F5 t" p: a) [7 ]3 f

- l& k# ^/ p& k& o; O/ d- O0 G. @MODULE_DESCRIPTION("Led platform driver");  {$ a5 F3 I* b
MODULE_AUTHOR("Tronlong");% d) v9 [- I5 }" U% S
MODULE_LICENSE("GPL");
2 ~4 c( a3 O& ^6 o; z. d7 j; M* ^$ t* K" s! p' v; t) Q. D9 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-10 05:52 , Processed in 0.039881 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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