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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' I! N' Y- u7 @* L( c2 e5 t8 _  }
#include <linux/init.h>- ]" Z8 k) l% g( H; A
#include <linux/module.h>
" _" T- t. d2 R! o1 i0 g( o#include <linux/kernel.h>3 n1 D  O* Y; F- y
#include <linux/types.h>+ G8 U" b2 b- W8 w, h
#include <linux/gpio.h># D) {/ C; l& Y: m) M7 v4 s* [
#include <linux/leds.h>
5 r* q- X3 |1 z" X#include <linux/platform_device.h>
4 J& Z1 N' e2 X+ k- @
. H/ g  T/ v( j/ ?% f$ e" {#include <asm/mach-types.h>; X: R( L! h- ~! U
#include <asm/mach/arch.h>. c" M5 Y) ]3 u" m5 Q: L
#include <mach/da8xx.h>
, t( I& t  z% G( [' O#include <mach/mux.h>- J# Q) Q. A) u0 w- u8 `9 z* d
+ y9 f% i; b% l% m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& K; d# L9 I& |# I* H0 l
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  z8 H: E; F) M; ~0 C0 }" m/ U, k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 y- J4 Q' k- B; a( F* g9 Q* k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 d4 S0 ~2 g8 P+ v: A4 g8 Y, L. j( r; a: N  {% H
/* assign the tl som board LED-GPIOs*/
. \1 _* K2 W8 F/ [$ [- D- xstatic const short da850_evm_tl_user_led_pins[] = {
6 y  D2 X: Y, V1 p/ l        /* These pins are definition at <mach/mux.h> file */
0 B/ |  `7 {: Z$ u2 {        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* N" U9 o0 `* V9 M5 M
        -1: @+ `' L- N" D0 L7 V! i
};8 I, G: Q& L# f; S. l3 h

- K4 D+ H; I0 v: I7 ~( dstatic struct gpio_led da850_evm_tl_leds[] = {
. G1 O( v/ U9 T3 R" L# ?# q9 m' e        {  `! |5 S2 A% H) }
                .active_low = 0,8 t1 m, ^" z; ~! ?
                .gpio = DA850_USER_LED0,
4 X& p3 @) n8 l! ?" }( i2 o                .name = "user_led0",
2 x* B+ ?1 \% O3 C: [1 a                .default_trigger = "default-on",8 g8 X6 ]) b$ w# q9 z
        },
1 }* ?5 a- |: O! G1 p, ^        {
& g: y" A8 A: Z                .active_low = 0,$ J+ g- p. u& ~2 [1 w
                .gpio = DA850_USER_LED1,8 j, K+ G( |+ Y/ F, h
                .name = "user_led1",9 U5 E; L5 s8 R$ Y* O
                .default_trigger = "default-on",
' {% y6 ], K9 `: a* Q        },2 g& ]6 @& T5 n, g0 z
        {$ [2 i8 ^7 I2 o) E8 R9 S
                .active_low = 0,
/ [& i, M1 c3 Q; B4 X                .gpio = DA850_USER_LED2,
1 T5 F  n, q- W! E& q% [, c! M3 u                .name = "user_led2",
, R+ R- s4 C+ s/ O# D                .default_trigger = "default-on",) ?' t( U' i3 l3 N2 s
        },
( w; C: R' m) I        {
; f6 _- v8 x  w$ |2 _                .active_low = 0,# P, d) Q( h: O1 {& P
                .gpio = DA850_USER_LED3,
+ A; K4 b) r$ H+ y8 L0 P                .name = "user_led3",
+ n% I! W& D( |                .default_trigger = "default-on",
* w- J" s6 x( _7 D" |        },
: b# M# \( z$ A4 |1 Y9 _};
9 V' k1 H1 L' O: ^2 O. n: j0 d- f. C: T* b. x4 g& O4 C3 z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! x: w4 W& G* ]) \
        .leds = da850_evm_tl_leds,; Y4 r0 ~4 D! W) H- o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  v! _1 o) s( T5 T) C* s5 H
};
3 G8 \% p8 y0 R: g" f! U! ~9 ?
5 T! e1 \/ @+ N1 a6 @- f1 Estatic void led_dev_release(struct device *dev)
+ `3 h9 J6 ^$ {{
& f; Z9 H$ ~# N( V};
  W3 t9 `6 Y: n+ B& m/ m" V4 i3 T' L. h
static struct platform_device da850_evm_tl_leds_device = {
8 j& {1 z  m8 R2 U; Q4 S        .name                = "leds-gpio",
7 T# J4 |. ~$ P9 P+ x" F: |" u        .id                = 1,
' T9 n* y8 D3 L        .dev = {- P- c% ~; q+ V' a7 ]6 ?; R
                .platform_data = &da850_evm_tl_leds_pdata," K7 B( W! i7 d
                .release = led_dev_release,$ W4 y* _" D2 v# t$ ^
        }
% O. u- [+ ]3 S2 J  ?. e) V5 Z1 ~7 c};
6 G/ p& M% A) M5 \% P7 X' W; e7 m+ F5 g; {: A' o
static int __init led_platform_init(void)3 F- e( c. v' y( l
{! z; s0 v; W  C% ]5 r
        int ret;& H' ^' q2 E  o! r3 B) f" A
#if 0
( N5 {' o/ q5 \8 e: u: ~$ Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 c5 v$ N" s4 c5 f. i  ]- r        if (ret)3 T4 ?) V8 @" ]& R8 A6 {0 I' O* X9 r
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 Y  J9 \5 g, N' g9 _
                                "%d\n", ret);% _/ b2 K5 E! @5 d4 ^& E6 L
#endif1 {4 L! S+ h, t$ x; x6 p9 B
        ret = platform_device_register(&da850_evm_tl_leds_device);
* N3 b  ~) q; j0 T6 S) H$ O        if (ret)
8 e- v3 a6 M" z* z+ x                pr_warning("Could not register som GPIO expander LEDS");
  z0 {8 D3 z) Z7 E7 {        else
+ X- u- L5 B) B2 g                printk(KERN_INFO "LED register sucessful!\n");4 ~: m9 w5 r( j' ?. a& I/ P

. X; V) V9 F6 g: u8 R& m        return ret;
  `2 p/ i7 ~1 E+ r8 y}
% m/ _$ U. P' F. X6 y  e; K! Z1 K8 H" L# J2 Y0 O5 |
static void __exit led_platform_exit(void)0 n5 m: \2 Q$ C7 Z: u
{% h* S; C, M, T/ }( |8 J
        platform_device_unregister(&da850_evm_tl_leds_device);
- ]9 E4 E/ F# x6 a. E3 _- e
& N; I/ i1 }& ~4 h) @/ R, m# e1 M( w        printk(KERN_INFO "LED unregister!\n");
) @% w, B1 s- c* J# J0 e}
7 m5 C6 z+ r, B0 n
3 w' h6 N% o- X+ Q( r( Jmodule_init(led_platform_init);/ U6 R& E7 c: O- O1 |, o
module_exit(led_platform_exit);
. G+ @/ P0 X+ K2 Y* M4 a
$ A8 ~3 U6 U$ j/ xMODULE_DESCRIPTION("Led platform driver");4 ^$ C* o. o% t4 J
MODULE_AUTHOR("Tronlong");* u) S+ d6 V6 B
MODULE_LICENSE("GPL");0 R# ?5 f/ h; b3 m
* ^# o7 m( g: i6 \1 }$ y7 t1 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-31 08:50 , Processed in 0.040434 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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