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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
' B( X7 O' s8 v+ v9 Y#include <linux/init.h>
1 e# c9 \0 O( L5 Q$ z" j. a#include <linux/module.h>
* S' U+ j5 @% i& u% d2 V, O! d#include <linux/kernel.h>
/ W; R9 Y; u; y( M7 C7 C#include <linux/types.h>
7 e' \5 D; D6 L#include <linux/gpio.h>. o# M1 b' C( q& e9 c
#include <linux/leds.h>
! ~1 }" x0 _$ Q1 O3 b. W#include <linux/platform_device.h>$ k" l' E7 c0 i1 K" y
6 [- l; ~. c3 b4 G; G: R$ R4 @
#include <asm/mach-types.h>
' A2 ]: o$ a$ g+ x: W/ W#include <asm/mach/arch.h>
. h$ J+ F- U0 t9 ?8 j6 Y#include <mach/da8xx.h>
3 ^% ^/ v3 ?7 H! U% y$ ^/ T; B) A#include <mach/mux.h>
; N2 Z4 I+ t" M5 U  u0 }* S7 H% ]' d
& w* j8 m; c/ c6 a% k/ g& N- ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): Y$ J# f2 G2 V! Q1 ?/ D7 L8 ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)0 I. g0 s. u; K+ [5 v$ J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 j9 B+ S0 M/ V' r0 |2 y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 }6 R  B- a, m& D0 E6 e$ k; s% g" J
! ]6 F2 p% u. g5 d/ j
/* assign the tl som board LED-GPIOs*/% @+ Z! p3 o4 }. V! Y! A
static const short da850_evm_tl_user_led_pins[] = {
4 ~. X5 T# E4 m+ z1 P* L# M        /* These pins are definition at <mach/mux.h> file */
! E5 J  S+ T: s: B* G  L2 P: R        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," j* G0 z/ n8 g, E4 g9 L2 o! w
        -1! r% ]9 C" Q( G8 X& D
};
- O. u5 t9 v3 L) U
; W' x% X! V- R1 ^static struct gpio_led da850_evm_tl_leds[] = {
1 Y& {2 R% [8 {1 C6 B2 D" ]        {% `( k# u- _% H
                .active_low = 0,
) Y) T5 ^+ J6 m3 Y                .gpio = DA850_USER_LED0,
9 ~* V3 G( S8 w, H# C# R% {                .name = "user_led0",0 ?: ~& J" [9 Z5 V1 y3 m  u
                .default_trigger = "default-on",
8 @& I( F( J% }- _" B        },
* w+ U" |9 V2 F4 M4 ^. t        {
& ?% c. b: j% I% [                .active_low = 0,
1 U- k- H6 S" x0 I* [) \2 v3 ~5 l                .gpio = DA850_USER_LED1,
; w& v! o. m! U) q. g                .name = "user_led1",
! \$ F% H. ?) p9 y( h  T                .default_trigger = "default-on",
# q3 L* x7 ?& f% i3 n, J4 p9 @        },6 R" ~5 a/ b4 ?9 I4 Q
        {( U! l" }2 G0 S1 u- C+ o/ B* s" t
                .active_low = 0,
$ Q' ~1 k$ ]8 C2 |                .gpio = DA850_USER_LED2,
2 T( w8 e6 i' b2 d                .name = "user_led2",: k9 i! d0 `, R3 `  O
                .default_trigger = "default-on",* y) c4 `! e% C& H  w. H$ s
        },
8 m* [& i. E% T) T: C% x        {2 c8 I2 {5 g9 @* v% |# Z9 e$ ?1 `
                .active_low = 0,1 Z4 ^6 t: S9 h- G5 Z- p
                .gpio = DA850_USER_LED3,
7 E; d/ D; m( G                .name = "user_led3",
+ F% S2 R6 I. K) H  e( z0 v                .default_trigger = "default-on",+ S% |/ H- w- M6 A
        },
1 i0 \1 J  v  b4 N4 J};
4 `" n8 Y) ^1 R& M6 w2 }; _5 y/ }% q6 u$ d% |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& A# J4 G  b; T& C% G6 Y, X! W. V        .leds = da850_evm_tl_leds,5 ?  j! u3 {  v8 Y1 _! ~% [5 e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- Q( c/ n7 \* g0 K};
7 d9 |# a. o0 q/ ?9 k# O6 f
7 M1 c3 |# j' G  L2 C5 gstatic void led_dev_release(struct device *dev)" u' Z6 S5 b$ Q4 A* s% ~
{
" A) _5 P: Z5 u" M8 W0 S5 B4 T" R};& Q% C7 t1 k& s& u: h
5 o8 h" o& z, k5 X1 m* c, u  _
static struct platform_device da850_evm_tl_leds_device = {
( K$ L' o1 F& Z9 X$ G% m        .name                = "leds-gpio",( {& @( H: L6 ^+ A9 g( X9 P: ~
        .id                = 1,
* R3 o) o  F' i0 d2 p6 q& C/ W        .dev = {0 E" I/ }& S9 o% x0 E) s
                .platform_data = &da850_evm_tl_leds_pdata,
# R5 n) c3 }% Q! k: v. t- x5 ^, m                .release = led_dev_release,
4 T( _& E( b4 Q: ^; M+ Q        }" n' H9 `$ e% U" q2 S3 ~4 \+ v
};6 M% j4 d  j1 t  x! d

" a1 }) P7 b9 V6 i7 Istatic int __init led_platform_init(void)4 u9 W4 M% F: H* C7 `" g4 @
{" t2 v! ~6 p9 a! \+ R/ H
        int ret;# j0 C7 k3 P% q5 j1 k
#if 04 X9 ~7 J) n: M& G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 ^/ z! T: T$ {' O
        if (ret)8 x" X: q( l0 P( y% f/ p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) _5 @3 u! z3 k                                "%d\n", ret);* |, L. o* ]: B4 A
#endif( [! U% H7 r! T, ^  d( Y. J: y
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 Y. a0 g8 V. m& m        if (ret)
- x% G7 L6 \' C5 _" e                pr_warning("Could not register som GPIO expander LEDS");
4 w" x- C6 t  l" _( T0 Q/ Y        else
1 p: \5 E0 E& c( Y8 R6 K' S                printk(KERN_INFO "LED register sucessful!\n");
5 F" n1 p$ @. [! t, c" a9 R
* t9 |+ o" k6 ?' m9 n        return ret;( O+ m9 q3 S7 {
}
# t9 `( b* G" P1 T8 b! a; P  i( K
9 w/ s4 s/ ?# P' u: gstatic void __exit led_platform_exit(void)3 d$ r/ w9 t; X9 R1 ^
{
$ ^$ f( a6 k  Y        platform_device_unregister(&da850_evm_tl_leds_device);) e/ |$ a/ l4 [+ o$ N0 x
: ~" B! a$ L5 r7 w8 j" u
        printk(KERN_INFO "LED unregister!\n");
0 l+ h# o. K+ [; Q1 G" v9 @: ^}
3 y5 K% x! A9 K' c
) w( ]2 N* [8 Y2 N7 Fmodule_init(led_platform_init);
) E8 B4 I# F# P7 kmodule_exit(led_platform_exit);
. o5 j6 m" _0 H! `" F( Z3 c) W, @& U+ u5 ?2 f. @
MODULE_DESCRIPTION("Led platform driver");
( _! Z* Z$ q; n* ]2 v" b  G) CMODULE_AUTHOR("Tronlong");
5 C5 }. g! o8 K, X! x. [3 t  }MODULE_LICENSE("GPL");
/ G; @/ c1 @3 F  J. q) e' q
6 ?. P. u% `4 b( q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-4 15:37 , Processed in 0.040505 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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