程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 ~( S2 @6 \$ Y9 w# I: g- M2 L' u! |#include <linux/init.h>& a/ P! B7 F. R+ ?  q+ e
#include <linux/module.h>
. G! d$ `$ l+ H% J  N* U#include <linux/kernel.h># G- q3 I" H9 `0 \" n4 l2 H, p" ^
#include <linux/types.h>
3 {: \! H+ m$ Z% P% z4 I# p' X* `#include <linux/gpio.h>8 }: H; m) V" N. A
#include <linux/leds.h>
3 h! d% F4 Y% X#include <linux/platform_device.h>* t1 {3 n0 S9 V7 k5 v3 M

# J( D" O  W2 r/ s#include <asm/mach-types.h>
/ x2 \* i) N; y" r% N' F#include <asm/mach/arch.h>
- i; \, A' t  j3 j8 ?  e#include <mach/da8xx.h>5 e: o8 b2 }) f% a8 Q/ O
#include <mach/mux.h>
( R2 }  S: p6 y1 ?& ?
9 |5 B; D: W6 m0 U- R! X% B#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 E/ e8 S9 L0 A% w' P% K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& E% ^( N; }: c
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  x! Y& \' g, y! a#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" F6 K, p+ R, Q- q; R; Z+ Q4 c
) {. [+ c0 q  M/ C) ^: c( u/* assign the tl som board LED-GPIOs*/  J- k3 n1 V4 Y' z; x
static const short da850_evm_tl_user_led_pins[] = {
2 s  K2 c2 a8 L5 W7 F  E" g        /* These pins are definition at <mach/mux.h> file */
1 v  m  ^2 M4 X5 U5 Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, R! t9 M" j7 F) w2 P        -14 s2 c8 p" v8 q- W. ?2 z4 L
};2 [1 _) l& r  ~7 |5 G# G+ S

- O) u3 O, c+ n" g5 X$ Xstatic struct gpio_led da850_evm_tl_leds[] = {
3 A2 r* m, d5 O3 T# N: |& i        {5 ^' i! ]) |, ^  O% X4 u; Q
                .active_low = 0,
. e; G  h. n- X( T                .gpio = DA850_USER_LED0,2 p' V; |4 w/ s; v' [
                .name = "user_led0",
& X2 m0 V5 Q: F& ^0 P                .default_trigger = "default-on",, o7 |+ A3 _; X0 S0 u7 H8 o
        },: ~. H& D5 _$ G$ z. p
        {
1 c: E$ b: h' K9 t6 W; ^                .active_low = 0,* ?6 U3 q1 U: W9 P; ~. l
                .gpio = DA850_USER_LED1,
- s" k4 {- n- b6 l                .name = "user_led1",
& _/ |# d0 S4 o. y# H3 O                .default_trigger = "default-on"," F3 x, ^3 u1 b; C2 }' u  }8 m
        },+ [9 V! r: q5 k) R9 x
        {" w6 x9 d9 M1 U7 R3 S' ^+ M  q
                .active_low = 0,# y3 ]' n: o, J/ X# e( i
                .gpio = DA850_USER_LED2,2 @  C+ z: c. I
                .name = "user_led2",
# }( s* S: i9 `4 H! z                .default_trigger = "default-on",% v- E) L/ |% ?) ~+ }# f' Z
        },
8 `7 l; F- S4 E2 M        {
" o; `0 R/ Q* D* Z$ n                .active_low = 0,# p; t1 j& A9 _4 {/ \' k
                .gpio = DA850_USER_LED3,
) d/ {/ Q$ ]* v" I- P! [0 g  d8 v3 f                .name = "user_led3",% r4 j- b. X6 b4 r( P% O
                .default_trigger = "default-on",
' I8 y( B% B: _  o8 c& k) I5 ^1 h        },; S0 v2 Y2 _' Z6 R2 ^6 d
};
1 K- N6 n; Q; m/ `) V% }( j) _
* ?. O0 R7 _5 S/ o9 j) r) s% ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ Z2 t. j8 u6 e0 U% q' ^        .leds = da850_evm_tl_leds,
  l# G# R- F# o9 s+ @" _        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ H( ^$ ]7 ?% v2 D$ G0 u: p0 d};
( ?4 {, T3 p! @/ K$ n, F
/ Q' z0 @, B) Y5 _8 M8 F2 Fstatic void led_dev_release(struct device *dev)
' F' O/ }5 Y' r4 ]+ y7 X: K{
' I2 \! H3 f7 p/ x};6 N% l! i- M: a% t" G  p0 u, r) i

) m- N0 r5 q5 T1 O7 u3 z: Jstatic struct platform_device da850_evm_tl_leds_device = {( ]: J& K) p: e; G( x
        .name                = "leds-gpio",$ a7 [" C8 C: k2 s% ?  F
        .id                = 1,
) W: o' l( j5 U  w" K9 G        .dev = {8 z: @& Q! A9 w! U2 k# o
                .platform_data = &da850_evm_tl_leds_pdata,' n+ |' j. N) H: \
                .release = led_dev_release,9 [0 D5 `' U9 E8 Y2 L( A6 u5 E: A
        }( n) K5 }. D5 v6 N1 o4 {& r
};) v6 n; j; @1 c- Z" W
8 t7 D5 Q- M! l' O- k7 O  M+ o* o
static int __init led_platform_init(void)! V  _& t' a! S5 e
{* g. d0 x0 N2 L* C+ t' ]
        int ret;. G8 L) Y: [8 k6 C: d% {( Q, a
#if 01 F- _! l/ W# Q5 N: ?1 I6 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 Z/ h" @' ~. L1 i$ e        if (ret)# E1 y' u5 E' _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 r; v+ m6 l# f& k& ]( b
                                "%d\n", ret);& D. c. U, T7 V+ e, D
#endif1 w- ]. s; s$ x& B: O
        ret = platform_device_register(&da850_evm_tl_leds_device);
! w- A4 e  |0 q- x        if (ret)
0 J' @+ O9 h0 o. U0 p                pr_warning("Could not register som GPIO expander LEDS");
4 n# R2 P! G+ j6 X8 s9 w        else
. ~8 p1 ?7 @! i* L' D7 U( \                printk(KERN_INFO "LED register sucessful!\n");
; e* k  ^( P- E1 c/ ~1 ~& s$ O( ^) [. k
        return ret;# f( H  A- \* D* Y$ b5 I3 d
}/ @, W/ w9 h. h& V* V% H5 a: h3 b# v

! x5 e' f! h! m7 }# jstatic void __exit led_platform_exit(void)1 R5 P; W2 W" S+ x% P, Z- S  Q
{) E6 I# w0 `' w8 ]( C7 |
        platform_device_unregister(&da850_evm_tl_leds_device);
5 ?9 Z" e8 m2 L! C( p0 _( y, Q' O/ G2 e8 A( S4 O# O1 W1 j
        printk(KERN_INFO "LED unregister!\n");
0 P  Z- Q6 ~6 A) x0 A}
  O) ]5 s- }6 H/ o) J& ^
1 L9 m$ j$ z1 H8 [  z7 pmodule_init(led_platform_init);" r8 x; I. o, a* s0 s) K4 O
module_exit(led_platform_exit);
( l7 k$ p8 y) r% P3 N
8 z1 a% ~& `& n: qMODULE_DESCRIPTION("Led platform driver");
1 S; _' p- W( A  Y9 @MODULE_AUTHOR("Tronlong");" p$ l& S! ?1 F2 |
MODULE_LICENSE("GPL");
+ Y$ F( Z* k" N& c7 D5 Q+ `: J' V
+ S" B9 b' w( |+ w1 ^) K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 19:18 , Processed in 0.038224 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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