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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. x" [1 K% k! q' h' t#include <linux/init.h>' Q, M" `% [# R5 C) w
#include <linux/module.h>: }: Y' ~0 _- O* {1 G& _  ?( X
#include <linux/kernel.h>+ |( y  r0 |5 E8 S
#include <linux/types.h>/ @" a1 U- t8 W
#include <linux/gpio.h>
1 q( C  V- P6 D. p- Q7 |8 \#include <linux/leds.h>
7 T9 R/ I3 D; |- h#include <linux/platform_device.h>
; G. c! F3 U/ X8 u
/ @* G  p- M# F; @( [2 Q#include <asm/mach-types.h>
3 Z8 ~, Q" j0 R2 f$ y% J#include <asm/mach/arch.h>4 y8 N. U3 w: M$ g8 G; l3 @
#include <mach/da8xx.h>2 x% ~' n6 B9 ?9 w6 ?
#include <mach/mux.h>" B1 [0 G. `8 L( [; D5 I

7 p5 K' C) B0 W2 @4 ^#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)$ I' e: X8 s8 ]8 j- r- p  n8 x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ r: m; ]+ h" G. `, a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! }' W2 h9 i% a8 q! Y, p0 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 d+ h8 ^  ~& A
% B) g2 u  d  c+ M
/* assign the tl som board LED-GPIOs*/
" }/ G% y9 E5 i5 tstatic const short da850_evm_tl_user_led_pins[] = {4 N) g3 i- D# l
        /* These pins are definition at <mach/mux.h> file */4 n8 b, n- U+ g5 {" t2 Y
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% ]' q* T& s# ]2 _- w8 H
        -1* w/ N$ p* F& y$ C, p7 C# a/ m
};
# d$ g6 ^# M& U/ `6 l! |7 F& e0 R+ O* q& t
static struct gpio_led da850_evm_tl_leds[] = {
' H9 f8 `5 u. H& O! _$ T$ o        {9 N$ L7 u, i: ^: Z1 q  d) k
                .active_low = 0,
3 z7 A% q) H: T0 w" H! p                .gpio = DA850_USER_LED0,
& H' O6 g& ?/ p8 [% P) r                .name = "user_led0",
5 b6 M" U4 t2 _/ P) w                .default_trigger = "default-on",- V  Z% m# X( Z3 P" K
        },
9 R( O% p, @3 ^- s! w        {' ~" x9 j$ N  _/ d; j
                .active_low = 0,/ m4 k/ p( q) U* l9 n5 {
                .gpio = DA850_USER_LED1,
" L% J" M! O+ e) R2 X                .name = "user_led1",
' I1 U) m. k' b$ ~: k: C                .default_trigger = "default-on",
2 p5 I" \1 l& v6 T' z        },
9 j/ w# d  w8 G2 A; \( G* }        {
' G7 F6 _# t* l5 _! Q0 X2 u: j                .active_low = 0,
$ ^' u+ q- X; d5 m3 V. `3 ~; Z' Q                .gpio = DA850_USER_LED2,
' p. G! S9 q5 ~4 i                .name = "user_led2",
8 j. c0 R8 W: g, H  G                .default_trigger = "default-on",
* a9 m3 R2 v7 h; j/ r5 G        },
# ]; d3 B/ s4 _# p4 X* m        {
" b# {2 k( L! c' |) U# M* u8 I6 v                .active_low = 0,
/ m7 s/ w! m0 U3 i6 ]0 Q  Z                .gpio = DA850_USER_LED3,! V, B; F' j- M' M* r. a/ P/ {8 M" ~
                .name = "user_led3",
( ]1 _2 Y8 `& w% j) M                .default_trigger = "default-on",
4 X7 f& T5 X; C& u* t9 X        },4 B- Q) H) O* v/ ]0 s8 z  B
};
' [4 s' j( {8 N2 I  Z, z8 q$ ~" J. N
* M! c5 S( @. t" g& W" {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 s; ~7 ?# d  D; @2 p. b
        .leds = da850_evm_tl_leds,3 T  ^, H2 [% q7 G& w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 ~  V$ C  g) r9 b' s4 Z( p
};
- a" J# ?4 R; K5 F1 Q1 s
. d: _/ Y( {$ A0 E4 Astatic void led_dev_release(struct device *dev)
2 h& A9 @( p- Y! w7 x/ O  J+ T{
9 f) D2 i/ v+ }/ j# h$ {};0 T7 O0 F- \& }; M
# V. E) _2 a; \: V
static struct platform_device da850_evm_tl_leds_device = {
: b0 A5 {3 G" t& R+ S' G( u        .name                = "leds-gpio",
# F. t, h! q! \! ~% T        .id                = 1,0 k0 c6 @6 w  t  s/ x# X' Y/ @
        .dev = {. o; o. q( q4 M  f4 j
                .platform_data = &da850_evm_tl_leds_pdata,
; i3 N2 m4 i. v                .release = led_dev_release,+ S. v1 [: u4 F  c
        }! O- Y; e# V) O9 z. ?
};
8 S. h* h" B' s% |
. P$ F* T8 h2 sstatic int __init led_platform_init(void)
) A- f9 v2 G" h4 m% P1 [{
2 L# ]; J/ v8 L0 i- u        int ret;6 G) J$ k# m3 b( N
#if 0
" ~- x0 }6 \- g% k- q; P6 C        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 {8 b( x6 M- _& J5 `, w        if (ret)
; V+ f" Y5 H- t/ U/ R4 v' h+ f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 d, ]7 M& e# c" H/ Y1 C
                                "%d\n", ret);5 P4 p+ h% }, ^
#endif1 V4 v- a& L& A; ~& D
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 G. n$ M2 i* D& t+ T+ m; Y        if (ret)/ S- m$ a# p: s( p' I$ u8 D
                pr_warning("Could not register som GPIO expander LEDS");
* O3 P& v: [$ f$ a1 u. G% Z' g0 P        else
7 H' C0 `2 t6 L* q4 [! G  Q                printk(KERN_INFO "LED register sucessful!\n");; `1 k. m# q" U

) [4 J2 P6 @  i9 u        return ret;
. v6 g1 l4 Y0 B; n9 N% Z0 x. u! r8 _}% S& l* U6 D3 Z' T1 O
' O0 Q$ l2 J6 w6 i/ `2 n; D2 z! B
static void __exit led_platform_exit(void)
% ]  n5 n3 g+ \. |; T/ C+ T{, h  [- Z1 b0 l+ A2 N
        platform_device_unregister(&da850_evm_tl_leds_device);& O+ x1 u+ s+ g! Q% b5 j
9 E9 r6 ~& K* K% }& S  u4 N
        printk(KERN_INFO "LED unregister!\n");9 R, p5 j$ o2 L2 Z8 W2 _
}& e' m4 F' ]# W- l1 x1 \8 u
, H  G. P+ x) R: p' o+ \. M
module_init(led_platform_init);
+ \) {& S: @% f$ U3 s: R3 f) Kmodule_exit(led_platform_exit);
6 }0 X2 ?9 q) j- S8 X) g) E3 u$ z% }0 ^) k( }) @7 w/ E
MODULE_DESCRIPTION("Led platform driver");. a0 t3 w, L6 C0 O0 G
MODULE_AUTHOR("Tronlong");- e$ {. {% B1 H: o
MODULE_LICENSE("GPL");! Y5 g7 {! }* V) C" w1 k( i$ f3 C
: Y, C* e% U* l( x0 r' Q3 f# y3 K! w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 22:09 , Processed in 0.040980 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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