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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* M) G  {/ R1 Z( F#include <linux/init.h>
2 a) C, Z" o, z1 X0 K#include <linux/module.h>
7 ]6 |9 A# T$ r+ \( k#include <linux/kernel.h>
/ ^8 O" F" b; m1 T  R#include <linux/types.h>, W4 _. @* _( k( \3 j5 m
#include <linux/gpio.h>
/ K9 X0 w. _$ W; U#include <linux/leds.h>+ J, h7 N# b  D" K5 q; c+ k6 ?3 Z, P
#include <linux/platform_device.h>1 B2 v! e' ], O2 E; [

+ O8 R/ a5 K3 M2 q, K; A7 R2 f#include <asm/mach-types.h>
. D% i/ F6 i2 N& x: M2 o#include <asm/mach/arch.h>
  C: |  y; D. F* v# K#include <mach/da8xx.h>
- D* X2 f- Q, s; h& W; q#include <mach/mux.h>0 [! T2 k, ?0 I1 X  @* E
9 @0 Y+ b% S$ C. R# u
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ L$ b0 @$ g  Q) H0 r* L1 }6 @, g" F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# I$ `* `2 x: w+ U#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% {: a# H  g  Y6 ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) L' c, S# o! K1 u
2 c% J& P5 W+ p
/* assign the tl som board LED-GPIOs*/6 N# z6 v- `4 d6 V' F; n/ u; x
static const short da850_evm_tl_user_led_pins[] = {
/ u2 \9 Z8 o- l1 F4 a7 |& k9 o5 u        /* These pins are definition at <mach/mux.h> file */
/ A3 d3 z6 K0 u, `# R7 z5 ^        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, C0 m  y' x, p        -1
: C$ r! W6 S7 Y8 I};& n$ C# o' t* F
# b2 t/ _" Z, F3 J! ?/ V3 d
static struct gpio_led da850_evm_tl_leds[] = {
9 _5 X; i) T) @+ ^        {
" k; z- D$ F0 ]" X9 L& e                .active_low = 0,
- q% F8 Z1 \- B                .gpio = DA850_USER_LED0,
) Z2 l: o% o9 T& ]                .name = "user_led0"," O0 e- c) j6 O( W" A
                .default_trigger = "default-on",% l1 T. ~& v/ X8 d/ x
        },
6 ?. S$ E% ~( l* \        {0 y0 D2 K7 p2 ~
                .active_low = 0,
3 O# R/ h8 S6 s, C                .gpio = DA850_USER_LED1,' B4 {( n' A8 O
                .name = "user_led1",
$ W4 F* n. O8 c1 ]1 b                .default_trigger = "default-on",
/ X6 E% x/ \/ t0 A# p- j( \# K        },
$ ~# h$ p/ Y9 F  T7 ]        {
! A; \5 \. N8 g% x# B3 {                .active_low = 0,) n# r# O  s- b* n
                .gpio = DA850_USER_LED2,
$ T+ s' b" o2 g3 D2 c6 E                .name = "user_led2",( ~, q1 B+ E% N9 W
                .default_trigger = "default-on",
+ ~0 Z* ]/ x, J' J        },; {; m) G6 a/ B/ Z
        {
; |0 }: |% V4 `/ B' A$ X                .active_low = 0,
9 c7 i/ E- y6 s& Y$ {2 H                .gpio = DA850_USER_LED3,4 _$ H' [! r# N" e# N
                .name = "user_led3",/ K7 x; D" R. f" n
                .default_trigger = "default-on",
& G. _; v8 _+ G2 u" H& n# \! u        },
/ y/ P7 P0 O3 B7 F; c; P& U};5 v  l* _4 t8 F

/ U! C- {1 E! @/ zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 D, |3 Q/ C! c5 F! O        .leds = da850_evm_tl_leds,
  |5 }3 x2 c+ g9 w        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- X) D( @! a  e};! @5 j! G& E' S/ `0 Y( ~8 N' j
  r$ E4 v! x* G! [
static void led_dev_release(struct device *dev)
9 Z% o' ?$ R. S# ?, v2 _5 T{3 y5 q& T7 {' O3 U  V% e
};7 n& N# [, P) d* D) m

+ u+ _- ^1 l# V5 Y6 `% astatic struct platform_device da850_evm_tl_leds_device = {4 g: A# a* x$ v+ k
        .name                = "leds-gpio",  I' p" W  S. v6 U/ x, j
        .id                = 1,5 z2 S7 G. m- J- C" p7 T
        .dev = {  w$ w: E, c0 e" n: L: U
                .platform_data = &da850_evm_tl_leds_pdata,1 u9 V  E: \  w1 R9 P* i
                .release = led_dev_release,& m9 A2 T& L: t& W  L) b1 j
        }" k7 T9 [: g# ~( i- D  U5 N
};# Z/ _% A2 O' b  n

: h8 {8 A$ i2 p1 Dstatic int __init led_platform_init(void)
. N0 x; {- y% [& J/ [6 `$ f9 z8 P7 Q{
' C/ j. e. F  q# S- b. j        int ret;7 |! h# }/ [. [; w! _5 F: i/ }" G
#if 0
6 ^) W" a. }3 j; P: l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ q# ~# b  e# D9 R, B6 O5 a7 ]        if (ret)/ O* p! A5 S5 r. o& J" ?/ v
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 o! z4 Q: S& ]1 `3 F0 R1 |& }                                "%d\n", ret);
1 P: @5 s& g9 k5 t1 }! ]7 ~5 m#endif
; ?  O- m: G8 i+ b1 x        ret = platform_device_register(&da850_evm_tl_leds_device);, [7 K: ?& L& j- l/ {, d% l  B+ N% q
        if (ret)$ C/ I& ?; q* B" B) n, Z! r. C
                pr_warning("Could not register som GPIO expander LEDS");
/ m8 k& A1 ~5 `* ?0 A1 a4 }        else: z; Q9 a: L- C& Z$ u' |
                printk(KERN_INFO "LED register sucessful!\n");, `. g1 L% S) @
$ Y  c. Z. f' v; g  d
        return ret;/ q$ G8 Y# C5 p' X9 X
}) H) c" g) |+ _$ j6 D4 Y
& e+ k7 l+ ]8 S/ s6 f% M" s3 b
static void __exit led_platform_exit(void)! N; ^7 \% p6 i3 K+ B8 O
{
2 ~, g6 C9 u# x0 {        platform_device_unregister(&da850_evm_tl_leds_device);
& o/ j0 Z  O" e) H2 b- F
! ]; q* X2 i+ A2 k" _% H/ X1 Y: H! E        printk(KERN_INFO "LED unregister!\n");
% |' W$ `& V6 p* }: F% P}
( q' P2 M6 k( h7 w  E: m+ x. R1 \; x8 M: |
module_init(led_platform_init);, O' @* H- _! G6 Z- O1 H$ L
module_exit(led_platform_exit);# ^7 v$ a6 n! w3 M& k6 w. G

0 x3 n4 ]' E: ]7 |2 E$ m" \MODULE_DESCRIPTION("Led platform driver");; d- C2 A* W' S  E& t, b! \0 a; |8 H" T
MODULE_AUTHOR("Tronlong");
' p4 Y3 P. E6 q% X3 K: m) yMODULE_LICENSE("GPL");8 B0 d' G! d7 o
6 m( s' Y1 E% i" i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 10:00 , Processed in 0.038531 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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