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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ B# H! p# I9 D8 j  ]; L0 D+ k8 y
#include <linux/init.h>
' N+ v1 q( [- c9 O2 u" ?#include <linux/module.h>
, D1 }7 K/ W2 |  s#include <linux/kernel.h>
' z, [* k* g5 F4 u5 @#include <linux/types.h>( t! ~0 V8 @2 A7 D! v, K3 V$ e% v4 F4 T. Q  |
#include <linux/gpio.h>
8 X1 O$ q2 z  ?% q. v#include <linux/leds.h>( ]" o5 G! b$ Z: x; A$ j3 d
#include <linux/platform_device.h>
: }7 a2 g6 @  l& T8 O( S: Z1 S0 X6 U* h- v! K/ B3 D9 b1 \
#include <asm/mach-types.h>6 z3 p( M- x1 @8 J* H. Z
#include <asm/mach/arch.h>
2 Z' u( r! B- M' @& u: c3 @+ S7 L#include <mach/da8xx.h>5 \; k7 c1 B* R7 L
#include <mach/mux.h>8 ~$ V; E2 q0 C2 v* `- C
" q! I4 D: E; p" B& k
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( k  b. T; R; r$ |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ y2 a6 F+ Q* X3 R9 e; F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ B& u! n: V9 \, I1 \$ ^5 `+ O+ Y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# p7 k. X# _( m' k6 A0 q- ?- q

! S: i8 v7 n8 w: `' E8 l/* assign the tl som board LED-GPIOs*/
9 V( Y4 E1 e: [5 @static const short da850_evm_tl_user_led_pins[] = {
3 k& _9 V; Q  e) c        /* These pins are definition at <mach/mux.h> file */
" ^- J5 K% ?( p0 V4 j0 k6 n4 h        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ S: z1 G! q" p        -19 t2 ?9 f( c7 F
};
8 f9 R7 n3 c1 j$ q" b1 `" \( }' b7 W) Q. D2 G2 t+ F1 U3 ]
static struct gpio_led da850_evm_tl_leds[] = {
9 a$ g& B- l8 s% y$ A8 s6 H' b        {2 q! x# B1 i- l# T
                .active_low = 0,6 [7 ?& P: ]3 c0 [- e& K
                .gpio = DA850_USER_LED0,+ W' M' r. v. e$ y" e% O$ t
                .name = "user_led0",
+ y0 D/ M+ r) ^% s, C: V- N                .default_trigger = "default-on",
, t# \) S1 Z3 m. O) t9 L4 W        },# f4 k4 @; v$ A$ _9 R! G  q" [
        {
1 r$ P4 F; {) r                .active_low = 0," N% {4 D5 O. m* j
                .gpio = DA850_USER_LED1,4 X2 q! X- ]; e
                .name = "user_led1",/ f. n- i  C  C( @4 Z4 @. G/ H
                .default_trigger = "default-on",
7 R8 @  q9 [; {        },
& t% u; A1 g2 e1 j2 Q4 x7 t- z        {: B2 l$ k6 g+ ~* t+ Z: k
                .active_low = 0,
0 V. E+ e, d/ O                .gpio = DA850_USER_LED2,1 Q. Y8 I* r4 O& T
                .name = "user_led2",
6 a' U, x% C3 k2 z  K# H# N; V; T                .default_trigger = "default-on",  a" H, P. R' y/ [$ j+ f2 Y
        },8 m9 s" ~6 h0 u- v
        {. m3 x" h1 q1 S; d- V  D* c- ^3 o
                .active_low = 0," a2 {' e$ Y# s, v
                .gpio = DA850_USER_LED3,
* m, p, j% H( `, R6 N& K" B8 I                .name = "user_led3",! n' i2 Q( k: c; O0 l
                .default_trigger = "default-on",
$ n6 s7 n# Z6 ~0 J        },( I! O$ u3 a, Z9 N# i/ k, D
};
7 n( O2 m( G# i, B% H7 n' e% M; ~4 i' c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, t( |, @+ `' s7 ?& \  M        .leds = da850_evm_tl_leds,
6 k8 D: a2 U3 x1 U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, ~2 G* P( }7 e  y: I: g& X};; d. r# p4 o$ v3 D, j  |) Q) d$ J' a
! R' w& ]$ q1 ^' P
static void led_dev_release(struct device *dev)
' H4 d* `3 \, `: y& C" @( ]6 X% Q{
! O; ]6 O3 ?, Q/ J. o9 Q) X};
$ Q& Q/ C8 I" w' A" l) [
9 z  `3 t4 _8 E9 Q5 Lstatic struct platform_device da850_evm_tl_leds_device = {
/ Y  X8 |. L$ y6 Z        .name                = "leds-gpio",- L- ?3 T6 w4 X9 P6 B% Z" @3 _
        .id                = 1,
8 \1 r  w. a! U        .dev = {
6 t% p; ]4 _$ }! b: W7 @: V                .platform_data = &da850_evm_tl_leds_pdata,+ \- L1 w; c2 ?8 Z- R* W# D1 g0 n
                .release = led_dev_release,9 |5 ^" K5 D8 O; l2 I( y
        }# [. `5 p) x( G+ S, {. I5 U* x
};2 o7 P, `( C( N2 a7 v% c4 V% I

; @" V2 h0 |. y9 B. \: c! Kstatic int __init led_platform_init(void)" ~* x0 M$ Y+ K/ N! S, i; ~
{/ W( a9 b5 ?7 t5 C
        int ret;% ^2 i3 _& Y6 |% ]0 F8 M
#if 0$ W! F- y, {- w* Z* \; `. S& g
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" J2 M% z  F4 I) ~: y; U3 u1 M, Q
        if (ret)
1 D+ S$ ^2 _) m2 d- A' z4 H                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ @* ]0 |" O! y2 q. h2 f9 y                                "%d\n", ret);: ^1 e# b+ T6 h9 N( K
#endif  |+ v- \7 c6 M9 ~
        ret = platform_device_register(&da850_evm_tl_leds_device);1 y  ~6 [, {( y
        if (ret)! C5 Z8 E6 C- x8 B  p' ?5 |
                pr_warning("Could not register som GPIO expander LEDS");
3 }0 n+ u" N2 o% U8 D        else
# A  n0 d$ s9 b9 y& {+ b) `                printk(KERN_INFO "LED register sucessful!\n");+ k/ u2 s7 q, _. x4 b; D+ x

3 P- Y" n/ w5 v* _3 y# z% |        return ret;; b: k9 c/ F, z
}& {* g/ V4 \- z
% t7 V7 g/ g$ e) ^; F
static void __exit led_platform_exit(void)
2 e; B' I: G3 u9 w5 O{5 k0 ^( h' O/ q+ G
        platform_device_unregister(&da850_evm_tl_leds_device);9 I$ @. p/ E2 Q$ Z. x

# x& t* `; @9 A$ a9 q( a! y        printk(KERN_INFO "LED unregister!\n");" y- q& v' O5 u8 ^1 Y
}. m' N, m( i2 l5 q" Q" f

$ G& J0 Q7 r6 ^1 n9 n% Rmodule_init(led_platform_init);
" ?8 _4 s9 f9 Imodule_exit(led_platform_exit);7 O6 p0 g" Y2 R: p2 i6 I
/ ]% x$ S# \; _& D
MODULE_DESCRIPTION("Led platform driver");( q* E, g9 O1 B7 v. g/ n8 a
MODULE_AUTHOR("Tronlong");
5 v1 D! k& N: j$ q. b6 T1 pMODULE_LICENSE("GPL");
3 _2 R+ X0 J. H$ p1 W% Q" U7 z6 z& L. J' O8 l8 {  p; y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 19:52 , Processed in 0.037829 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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