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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# O! L. J5 w( P* i  d- B. [
#include <linux/init.h>  u1 }8 c: X3 ?9 ^6 ?
#include <linux/module.h>
8 i8 P7 V5 q1 z. s#include <linux/kernel.h>
2 ~; R( ~, i6 f#include <linux/types.h>
* |, H9 A, o4 _#include <linux/gpio.h>& P% Z, h- {% c  K
#include <linux/leds.h>
% ]+ h% [, ~, p- p, b2 s3 m#include <linux/platform_device.h>
( [6 A* u* \$ V; d0 t3 d3 t" q1 O8 y' w
#include <asm/mach-types.h>& [* S( t5 q! \; f
#include <asm/mach/arch.h>! o# G5 Y+ x# }
#include <mach/da8xx.h># u7 H' z1 ]1 [9 B# B6 X/ ]7 S6 p' d
#include <mach/mux.h>
% O2 J+ t9 |# B& k* c+ Q8 o$ k0 J' K, G2 N0 J
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; K* N- a# f; U3 n+ J. L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) \8 W) _3 Y  P/ u" Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! I* U2 E! f, y; Y% u
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: x# Z1 H; e2 P8 U' g7 y& Q* s3 j1 B
/* assign the tl som board LED-GPIOs*/
/ E; f& Z+ |* U8 T; ~$ [2 gstatic const short da850_evm_tl_user_led_pins[] = {
- H! B6 }! n+ q% c/ q# x7 ~        /* These pins are definition at <mach/mux.h> file */
% F% I( [' D# ?8 \& J/ q8 T        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,# |  c, o( N0 p* a1 ]6 h- w" \
        -1; U8 ~0 N) E# b8 P! K( J4 w7 p  n
};
& ?7 A  G8 d/ l
. l, ?# v% ~5 j& U* v0 O% j3 u- s9 Pstatic struct gpio_led da850_evm_tl_leds[] = {
" i7 a9 M, J: D- n& ]1 e        {3 w$ ^! M* w; ?6 y
                .active_low = 0,
/ t( {% Q" F' s$ m# Q& u" Y  `                .gpio = DA850_USER_LED0,
4 k6 n, V, s" F7 w0 c                .name = "user_led0",: N* F0 r# ?# v
                .default_trigger = "default-on",
# ^2 Q7 Y! R; k% y. V+ \, L( n        },4 F) L. [9 b1 @! K7 f7 g/ F- J" s/ v- K
        {
; f# l* I& Y0 P$ T! z                .active_low = 0,
% Q6 b7 ]4 c7 l7 y# v2 X# x9 L2 c                .gpio = DA850_USER_LED1,  ]3 w, J2 w. l7 L% }
                .name = "user_led1",) ^2 H( f* V3 Y, Z
                .default_trigger = "default-on",7 O: [; h, a% q* d( H, _9 j; `
        },/ r2 H8 ^* T+ k0 m* F6 I3 f4 x' Q" ?
        {
3 e/ d. V' H. _; ^2 N6 c& z4 C% O4 x                .active_low = 0,
2 V  a5 v; W  V3 A9 e" b' k% h4 d3 L                .gpio = DA850_USER_LED2,
* z$ [, U. R2 ?5 y- t- V( K# W                .name = "user_led2",
+ L. ^2 I: \$ }$ a! G                .default_trigger = "default-on",& X' i3 o2 @3 H2 N: A8 n5 R
        },+ B* |8 j4 e) U9 X! N3 E
        {6 K+ S1 a4 S5 @: `# [& f
                .active_low = 0,; q( j8 z2 U" v) T
                .gpio = DA850_USER_LED3,2 {9 C% h2 w6 y7 s+ u
                .name = "user_led3",
3 ^1 X& K8 ]9 R. n, z+ g/ U                .default_trigger = "default-on",
0 r7 M8 A) K7 R9 g        },$ b% L" _! q5 Y: S% D, E5 J4 Q
};% m9 Z, v& W$ r( C+ m( R% X9 }
* ~' N. O/ k+ G1 i1 l5 m' ~1 v' j8 ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 N; T; p# a4 k4 a        .leds = da850_evm_tl_leds,2 g, `" J, P. e' F4 @# V( t1 @
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( [: q* X2 w4 U5 i: \3 _
};
0 ?: @0 M4 V* ]
1 ^9 a3 _* u, @; Istatic void led_dev_release(struct device *dev)6 J( \$ p# F& A2 Z
{0 Q! A$ j2 Z1 H2 {& P
};
3 E. b% q/ M/ p) x" K4 `) T
6 V5 ?/ }1 }! m. D) ?static struct platform_device da850_evm_tl_leds_device = {
1 b1 w' q& u2 f3 V        .name                = "leds-gpio",
% k) }0 Z6 j$ {7 K        .id                = 1,
/ m- S: k, \; \' {        .dev = {1 E. ?( u& P; |
                .platform_data = &da850_evm_tl_leds_pdata,) _$ E: Y* H& q  a/ g2 [
                .release = led_dev_release,! H0 H- B; D& a" W" X) R5 i0 l
        }
3 R+ b2 e" E7 v+ q6 h};
, d2 w) q$ m. q2 g" e6 E( o- H/ L8 J8 |4 C1 u4 j8 p' }
static int __init led_platform_init(void)( z$ w  w5 }4 {% I: A- n$ _
{
6 Q0 g+ b5 q/ e3 W* ^) n        int ret;" h3 h" n" ^2 R* w6 k
#if 06 {7 O( h* o; V; C2 N; j, o+ y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 G0 `' H% |2 U$ S9 ~
        if (ret)
! ?( d; |" R1 l1 ]0 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 D) E8 N7 A( E# _. c+ B$ `                                "%d\n", ret);6 Y: E8 ]4 _' |8 e; N8 L
#endif+ g8 w# s% z! {% Z( n4 N% E8 u/ Z
        ret = platform_device_register(&da850_evm_tl_leds_device);
- b6 Z, @$ F% q; m        if (ret)' X# S- K! l0 a! g7 s
                pr_warning("Could not register som GPIO expander LEDS");
; Y& t; \) i, u  c5 `        else
# {3 ^2 v: f( S4 J! F/ ?                printk(KERN_INFO "LED register sucessful!\n");% Y, a$ W0 z( u9 d" w
/ L* `) g. F* X# U: F+ W' r
        return ret;. @: W8 ~4 E$ A0 ~8 K( l
}
: h+ V. b! J2 d" B0 R" G3 k, Q0 {9 T4 m
static void __exit led_platform_exit(void)+ V7 k& ~+ V: h/ ?7 j: j1 Z: r
{, v( q( o$ d6 [5 L0 d% d
        platform_device_unregister(&da850_evm_tl_leds_device);8 R. p+ o7 F" \! K9 G
& u" {, Q3 `3 {, E0 D7 W: ^
        printk(KERN_INFO "LED unregister!\n");
/ X( p5 k: X8 W$ [7 I( i}
+ a9 m/ ]7 b3 v1 N8 s: W0 X/ h2 N8 m' K! a/ Y
module_init(led_platform_init);( I' E! v5 r# x' c, x2 k+ s
module_exit(led_platform_exit);3 [( f% M- U3 ^" p
0 e8 \/ H$ n" _' Y6 q
MODULE_DESCRIPTION("Led platform driver");
4 I' h. S$ m% E0 K5 w0 b& n# {MODULE_AUTHOR("Tronlong");% s& I! M" v* \" D  y# V6 Z. g
MODULE_LICENSE("GPL");' ~5 C6 z) I2 ^$ r0 T# `9 |
7 v* a5 \# q! u8 I7 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-21 22:05 , Processed in 0.041921 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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