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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。( G4 Z9 A5 ~1 f+ I$ X5 ]/ _4 D
#include <linux/init.h>1 {% w$ ^( v9 i5 q( l: s7 G+ S. n' E
#include <linux/module.h>/ w+ k* q$ b* k  r4 B
#include <linux/kernel.h>
  \6 k/ i4 B1 k8 C; |+ r2 M$ [#include <linux/types.h>' A( P/ j: [- A6 I3 N  D
#include <linux/gpio.h>( |" B2 o& y( C3 F. V! \  B) P+ p, j" u
#include <linux/leds.h>
3 [7 P4 A- y* x' M8 t#include <linux/platform_device.h>
* d) l6 |( D  \$ X, P4 P1 n
  y, w/ a3 m8 d& ]+ U  o$ Q( M4 j#include <asm/mach-types.h>
! e9 J2 |/ B/ O0 Q+ S& `, o#include <asm/mach/arch.h>5 F+ K/ c; X; n1 }" p
#include <mach/da8xx.h>' I0 U3 F. ~6 W* J0 x
#include <mach/mux.h>
5 I+ X7 q/ @. L; }. k9 L
0 O) n  }, U% i7 x( r5 l% n7 V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! }# h8 Q) [+ ~3 ]' i#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 U: f9 A: @; ~2 r#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); ?* ^# t! ~, L% J$ F; T
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& L) I" v) C: |  L$ W6 L  l8 E2 V+ a7 l
/* assign the tl som board LED-GPIOs*/, @3 V$ v  W3 E$ W# z* R2 y
static const short da850_evm_tl_user_led_pins[] = {
8 c1 Z: V. M/ D0 l! [0 f, d2 U        /* These pins are definition at <mach/mux.h> file */  ]6 m% b# h" p5 Z, r7 u1 g, O& j3 b0 b" _
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- t, c% n1 b  P/ r9 h) @' T        -1/ i+ y( K& H+ j' N5 [/ B
};& G- V+ _7 ]) a, M4 O% T4 X

! m+ t0 ^: r! {4 |' X) ?" F) G6 d1 bstatic struct gpio_led da850_evm_tl_leds[] = {
, B4 ~& }* T) r/ {0 V        {  z! ]; Q( p% }! w) u% q: F/ _
                .active_low = 0,
; H$ `! B, r& d  w                .gpio = DA850_USER_LED0,
% u' v" o/ X5 j& n& C9 z& ~, g                .name = "user_led0"," K  n4 o  `4 I! B4 a& k8 b
                .default_trigger = "default-on",
: w, ]3 f2 E' u& M  p( W! u        },
* x) S+ J3 @6 D8 _! s        {
8 {! j6 D. r+ O. P% ]* @, y4 X* V$ _                .active_low = 0,
/ j4 {# J& N% A# p  g5 d                .gpio = DA850_USER_LED1,- l' b. A# @7 k- n0 z
                .name = "user_led1",
% q8 m- s, w! ^/ ?% w                .default_trigger = "default-on",
- q, P" `$ F6 ~: `  q        },5 m+ k6 ~1 W0 B0 \
        {
  A& x  k6 }# v2 v" Z, r                .active_low = 0," Y  M+ x% b$ R/ {2 J3 v
                .gpio = DA850_USER_LED2,. L9 N$ _  S  [) L# ?) q- ^
                .name = "user_led2",
* y( X' O' R+ f+ f2 k                .default_trigger = "default-on",4 v& R3 \* @: S
        },% h/ }% J" I7 D' T3 d- H) B& A* c' |4 x
        {$ O+ N+ M( R7 n1 L
                .active_low = 0,
) h5 m" \# y! w                .gpio = DA850_USER_LED3,( }5 X  r9 F5 V5 o5 V+ w
                .name = "user_led3",
4 [8 x0 C8 E9 M6 D7 |! a# k2 M                .default_trigger = "default-on",
1 H3 }3 e: T3 o7 Q' {3 Y        },( F/ @; o) O! D
};
0 N: b1 U6 U5 r: k1 E6 A5 G9 J
6 @; a* m9 F0 [' [! @static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 v! A" ~/ Y3 H7 K        .leds = da850_evm_tl_leds,( w2 l9 g2 Y3 g$ c
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),' C- K  Q" }8 K) f& H. h
};
8 U+ s5 v# h2 H1 e( `8 ~1 x; ?* D9 P+ r/ E0 `
static void led_dev_release(struct device *dev)* q3 e, u6 R& n1 ]
{
: y% P7 H! C4 ]; q};3 n& q- S- r% X7 o! ]+ R
' b$ R5 A3 g6 ]& X* i2 A
static struct platform_device da850_evm_tl_leds_device = {9 t  v, l: z' e: O2 ?! j- J- E
        .name                = "leds-gpio",% _# H- Z) ]6 I  X
        .id                = 1,: Q9 K4 c# T) J9 u) e  Y+ m0 `
        .dev = {
+ ~' u9 Q8 w. ]" e; N                .platform_data = &da850_evm_tl_leds_pdata,
- Z! N* ~4 r' w+ x5 L; n0 Y* c- n                .release = led_dev_release,) t, h% K: |& h( N6 Q
        }+ F9 n6 }* i& R; d- K5 W* |( {
};
- Z3 j4 i, D1 H# S! n5 J( Y6 o. k
3 n  R: O  R8 d% T% m8 N9 K* dstatic int __init led_platform_init(void)
/ v2 S/ c. q3 L{
0 M$ |6 ~- b7 k        int ret;
$ T; H3 n+ ~- D9 [, @# {2 f#if 05 b8 p5 v: c( t" n  S0 l. S* @) q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; K( \7 B) s2 a7 O
        if (ret)
/ s. B. L9 a) a                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 j0 e. m% u5 R$ f: S                                "%d\n", ret);- w, q# n7 u. ]4 p
#endif6 A) d. @" S( I
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 N) U1 Q" y, @        if (ret)
! y' `3 N+ b2 j) B                pr_warning("Could not register som GPIO expander LEDS");
1 a  u" G* O- f  E# j        else
% I1 i& h( P( m                printk(KERN_INFO "LED register sucessful!\n");
" I# E7 i' o  E' k3 A
* T2 @* p! i) i8 {* {! I        return ret;
3 [% m1 v& z7 A0 a8 I8 [9 T}8 O1 e- u; P7 J9 x- g* u+ R/ C
- S- q' J5 f. {3 @* Z& Y
static void __exit led_platform_exit(void)# B4 L/ E7 D' t0 Q7 [, }
{
* ~/ ]! B+ i3 X        platform_device_unregister(&da850_evm_tl_leds_device);, q& X/ y' r) f$ N; D

) A1 H* E8 ^. A% @! k& q) F+ k& l* a        printk(KERN_INFO "LED unregister!\n");* i$ N  c/ z6 X4 [: N( u* ?7 T
}# l# ?# S8 M, B9 D  u

+ G  m! Z4 p0 \9 t* D9 Fmodule_init(led_platform_init);1 F4 X; S; r% w+ p1 ?" \$ [
module_exit(led_platform_exit);& P! X4 \6 r0 L

7 E( H1 R, O( TMODULE_DESCRIPTION("Led platform driver");
' x3 N7 A0 T2 c" IMODULE_AUTHOR("Tronlong");
$ h# g& u' g0 n  ~" e# N) zMODULE_LICENSE("GPL");
# d* e5 u3 f' h( Z* k. b6 n' W* h
- ?7 y* v; [2 z1 |/ ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 11:38 , Processed in 0.048150 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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