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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" `" p) ]: j0 L6 ?
#include <linux/init.h>' Q7 m; z/ {' H& H8 n/ R' p0 H
#include <linux/module.h>8 a3 x2 F6 T7 L, M3 U: ?& m* v( i' ?
#include <linux/kernel.h>  K; ]; H* g+ |) V4 D% |
#include <linux/types.h>5 n6 t2 `2 G- ~6 R0 G" X
#include <linux/gpio.h>8 m; z& u1 Z1 h- o3 q
#include <linux/leds.h>) X/ j2 ?* E3 n
#include <linux/platform_device.h>/ L1 _& [+ x8 M6 ]: b9 l& X! C
8 f3 }7 |2 [+ Q$ W3 V
#include <asm/mach-types.h>: o, T3 t( p4 ~
#include <asm/mach/arch.h>& R$ @) i. A/ \$ u: d
#include <mach/da8xx.h>/ x9 N( Z4 o8 K, d
#include <mach/mux.h>
+ t* x* M( x. S
6 \) F7 a0 [3 R; A/ x' h7 j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  A) |! v3 q- b7 J9 B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 P" B$ z" b1 I& [' _  V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ d2 ~8 N0 k( p  R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ B/ t2 U% y/ ?; I7 u. {* a  z

, V% {6 B  u4 e/* assign the tl som board LED-GPIOs*/; q  r7 v+ G& V1 S& V9 l( ?9 |
static const short da850_evm_tl_user_led_pins[] = {& A) ?; C/ x1 j% B
        /* These pins are definition at <mach/mux.h> file */4 ?7 s- P' t; q' i4 m6 f% @' d
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 H  S4 @- Q/ q$ u- t' |        -1
/ @# O: p. `; w: @6 M! t, t};
$ ?" D  }& ?9 d7 R+ d( O( Q; j3 j. ?: X2 G" m- K
static struct gpio_led da850_evm_tl_leds[] = {
" O- p' D0 n  Y* ]$ V        {' `: q. ]  w$ e5 B% N8 q
                .active_low = 0,! i2 k5 |) |3 ^* L" C+ q! @
                .gpio = DA850_USER_LED0,
- c& S  {  V0 s  c                .name = "user_led0",' k3 y( r, S$ U; v
                .default_trigger = "default-on",
& K+ _  l+ W' I% r; K/ A6 ~  {        },6 z7 o9 n1 r/ s' Q. l
        {1 \8 n1 K6 _6 H3 D; w+ U
                .active_low = 0,
1 g7 ^( l. ]5 _                .gpio = DA850_USER_LED1,8 d+ D# }  A1 }; a
                .name = "user_led1",+ z$ `" `7 w! @; `: [  i' V; a
                .default_trigger = "default-on",' n% q: e% H! U1 e! ~$ n3 O
        },
- d" a# |6 |$ z5 ^; N0 J        {
& ^" f3 m5 K$ c  d& c                .active_low = 0,
8 p7 d* ?" [3 p' M+ T6 y                .gpio = DA850_USER_LED2,( l7 Y/ l( g8 |# K; s, q
                .name = "user_led2",
% ^: A) z; Q0 ?0 G* r% e1 u5 r                .default_trigger = "default-on",& e/ z( H9 G% N9 H& s
        },
% Q; M" @# u6 g+ `        {
+ B( h; z; ^: @9 U& s                .active_low = 0,8 L% v3 T% \- l, {5 ^* m2 z" l( M% Y2 W
                .gpio = DA850_USER_LED3,# U, M' r0 \, |, V+ K5 p+ U. z
                .name = "user_led3",& P& K, [5 Q) ^) h2 D( I# x
                .default_trigger = "default-on",
0 w8 Z4 H+ S' V+ F9 T# t  N        },! F1 g. H7 i& f, U" e8 |
};  m  L9 G' x! ]
7 B2 z8 \5 D$ _5 i0 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) i- q5 c+ k+ {        .leds = da850_evm_tl_leds,
' V  N! Y9 [# k% k6 G  d  m- h# p9 a        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) l4 b- [8 A1 E};
% H( ]4 K/ ?4 t: j' F, _; ~3 X- X2 P8 f1 _: [
static void led_dev_release(struct device *dev)' G2 g; y7 l2 u2 b
{
" G$ Z8 @6 g' \};( F" L3 ~0 I" m" ^3 o7 W4 e/ J

! z. ^$ \. x9 }7 ^9 G2 }static struct platform_device da850_evm_tl_leds_device = {1 j8 R6 G9 P" e+ [
        .name                = "leds-gpio",
5 U6 J: g$ C; j/ |& b        .id                = 1,7 J5 T. F- R# A& S+ n; R  f
        .dev = {
' |# t- V, F- ]) n- w0 M                .platform_data = &da850_evm_tl_leds_pdata,- U) v! X7 y( [9 A7 X6 s
                .release = led_dev_release,' U- Z0 P2 K1 z& a+ ~- G! Q
        }% m6 T; i! ~/ L* z7 j6 [8 A
};# @, |2 \0 X# V* W8 s3 D' k6 [

$ ^' r' Z) H% W8 vstatic int __init led_platform_init(void)
5 m# U" W' ^, Z4 y{; e, y! ~/ o& S6 U# ^  ~7 c1 `
        int ret;$ V8 W( F  a. ~3 @) D3 D  J
#if 0# o) c& `  u% U0 x7 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 b8 E0 t2 T; y- K) h
        if (ret)# G& z2 v* [3 [2 u& z8 T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, B; v* r2 [/ k2 @& l# j) g                                "%d\n", ret);" B9 [; w8 H' E5 L/ R$ g* `  z
#endif& O* E! N) O' O0 N5 }
        ret = platform_device_register(&da850_evm_tl_leds_device);- V- i/ y/ u6 Y9 E
        if (ret)1 o: ], }' ?4 d" c
                pr_warning("Could not register som GPIO expander LEDS");- b! w3 G0 o. W( _' D
        else
0 k- [6 K; b# u. [4 R                printk(KERN_INFO "LED register sucessful!\n");! y  `/ |! G# S0 Z1 D) a* o% F0 o& G
' j; ^) j( R- E9 p. [# s
        return ret;6 d! l/ l" ^/ y- h) ]+ X
}% Y) B; z9 g+ T$ U; x( Y
, d) q  l, @% ?3 A/ S0 l& N
static void __exit led_platform_exit(void)) q- i0 \! y( |! b; L) @( ~! T
{
" a, }! W5 U: n/ _6 N! }/ v        platform_device_unregister(&da850_evm_tl_leds_device);$ c: s* U/ p3 K3 K
# k( n& V$ ]) Z  }; X
        printk(KERN_INFO "LED unregister!\n");4 j$ U" |! J7 _- v4 h$ ~
}
' ~: f0 v  n% X$ F, E/ a  q) q$ M: b9 ?7 J
module_init(led_platform_init);! ?: N) ~$ d, x$ V" ~6 o
module_exit(led_platform_exit);
+ C  L6 t' Q2 X4 a! v9 D5 c. U& d/ A2 e; R; f4 i) ^
MODULE_DESCRIPTION("Led platform driver");7 `' m! V- X% R' R
MODULE_AUTHOR("Tronlong");: B% u( @- B2 ?" j7 t
MODULE_LICENSE("GPL");3 v$ D' _6 q- G9 _2 y( o/ E
$ F" m. V. L7 ]: C7 o& `% s4 P; y( R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 14:30 , Processed in 0.038636 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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