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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ Y, u" R! M4 D3 `8 R; |. g#include <linux/init.h>9 T$ B& c0 S) n, R
#include <linux/module.h>
) m/ h. W  W. C  a#include <linux/kernel.h>
( J3 P2 k8 n2 I! b" B4 g1 h#include <linux/types.h>7 n7 \5 E, s$ E1 A% {; j" [
#include <linux/gpio.h>
, v) U; M! E$ e# J# B#include <linux/leds.h>( j" |" I5 Z3 T  R6 N; n+ A6 D. H
#include <linux/platform_device.h>
+ p" v' T- Y  L1 B6 c, P, Q! _. ^. t. \% H3 x$ y# h
#include <asm/mach-types.h>, `7 B- i" y2 t* a1 n
#include <asm/mach/arch.h>- k6 U  j3 r. y0 k/ q: U
#include <mach/da8xx.h>
: y. q3 X% z% t#include <mach/mux.h>) l% s+ `' `% y3 q" T! `

+ P4 y4 K- j3 {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- `+ D1 @1 ?7 j* c  Y# V2 D8 n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 v6 l6 ~( {& r) y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ z9 S5 t& E; r5 d6 |8 Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 W- g' L/ {# z
0 R, n- z1 v# Q7 X8 i! I
/* assign the tl som board LED-GPIOs*/- O: i- ?' N5 x+ b
static const short da850_evm_tl_user_led_pins[] = {
% _4 F* o8 U. y8 y1 g, l7 Y. s1 \: z        /* These pins are definition at <mach/mux.h> file */' [" n" y1 G; `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, Y& M8 Y% r* v$ i  a# g* ]5 ~
        -1
" e+ Z4 X, K* a2 ?1 C6 U+ i};' Q5 S) t7 |4 ^# i

* E8 W+ V: F: g$ G. J9 v& ^- gstatic struct gpio_led da850_evm_tl_leds[] = {
6 G  |0 J* v7 _: {" T+ [        {
+ B! }% t5 W$ Q+ W- ?* v                .active_low = 0,
$ D6 Z* Y  N5 N' R* H/ h                .gpio = DA850_USER_LED0,
- c2 u5 A* z, O$ c  b) F- ?; v0 @                .name = "user_led0"," E( v; w; a" L4 S+ }/ \" W; q
                .default_trigger = "default-on",
- N4 {, v2 d  a8 w        },
* I) S. O. F- u  {2 {# M: c        {
0 R( l! l: Z; v* y3 w                .active_low = 0,1 R' |- T( B4 Y' e) f
                .gpio = DA850_USER_LED1,; f5 P$ r+ ~9 ?
                .name = "user_led1",  o, }# n( g! T1 q$ D4 i- [
                .default_trigger = "default-on",. |2 f, ?9 K5 @  }
        },& [2 b0 V- z* l2 G/ O+ G% _, i+ x
        {7 x, N' k$ D4 H  a; t1 Y% z
                .active_low = 0,
) S& y+ r% m) X; y& ]3 h3 P, |                .gpio = DA850_USER_LED2,: K( I8 I! P( J3 Q
                .name = "user_led2",
" ~7 @- N6 C( z5 `% ?$ n1 v                .default_trigger = "default-on",# }, ^1 `8 d7 i) U- F4 C2 o
        },
8 Y. [+ c" D/ m, I# ^1 v! p3 w        {7 m$ j4 d) g4 S$ e) `( _
                .active_low = 0,
* X; K+ t" q# c' f& R. }+ @                .gpio = DA850_USER_LED3,
* j* r. }3 ~7 ?2 v0 }                .name = "user_led3",
3 X1 w. w5 Q) C" o9 V; \                .default_trigger = "default-on",4 v% V* O( r- q; D
        },3 S: X: K2 p+ ]5 d. |: `( w2 P
};* _+ \8 C6 U2 O8 `+ j+ R0 {
* k$ u( u- x- t. ~" W: h5 h, c, C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ R3 N" g3 T2 r, d$ E  D        .leds = da850_evm_tl_leds,
3 a4 S/ D7 f0 I: i$ U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 V2 C1 l& [9 A: w  H4 Y
};) L' V6 J+ |9 f$ g

! v7 z& J- Y$ \) X# `7 estatic void led_dev_release(struct device *dev)
% U1 t9 p2 B* }{
$ D$ L  u, L7 r! G! j};
0 Q% S- B8 ?  P  ]8 s- l  a6 f" w* q0 q% |9 U: U
static struct platform_device da850_evm_tl_leds_device = {* U- x5 K  r' c% D
        .name                = "leds-gpio",
( }  k9 Z3 ^5 k. p8 L" a        .id                = 1,
6 J- |. a  v& D2 V) R3 k* y! @# m8 l        .dev = {2 x1 B) [9 s, f& h# ?9 p
                .platform_data = &da850_evm_tl_leds_pdata,
: ?1 k6 f7 a1 [' Q+ W0 s! S# M% N5 z                .release = led_dev_release,
7 X# x( z- f$ n, F$ P$ c        }
& ~: ^' f7 r  a% _4 v/ ^$ I};  F+ u" {7 x  [4 m+ ?6 O5 k

# Y& ?! W* c% C4 J; }  tstatic int __init led_platform_init(void)9 Q/ v4 G+ i. w' V: k
{3 Y9 l, L4 W! j  O0 z0 {" s* V
        int ret;
% T1 f' u& A9 a% l- q( \#if 0
+ \/ \. I, f  h& S9 Q- T        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# C, M. K! H. t: o3 N! z- T        if (ret)
3 {3 [6 G1 c0 @: S, B5 ^: x7 g! e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
0 p# ?- j* M' B                                "%d\n", ret);
3 n1 _5 T7 n0 [9 `" }' u#endif9 D# `6 B5 e; x6 w
        ret = platform_device_register(&da850_evm_tl_leds_device);
* \* @& M% @  p. }        if (ret)
  y- u/ x$ R! P* f3 C                pr_warning("Could not register som GPIO expander LEDS");
! e: k/ P/ }) ]& N7 z        else
7 W4 @% U9 p  v: w7 A0 C# m                printk(KERN_INFO "LED register sucessful!\n");1 @( V7 r! |# o: B1 R8 L3 B! t$ R
$ y: k% K. w& L# P' Q: G7 u
        return ret;
% i5 E9 W) I1 |4 y3 {2 Z! }$ Y' n) W}
, [- e* r+ C0 b4 e, v7 @+ w: Z: p4 y( o: v  N
static void __exit led_platform_exit(void)+ M0 P! S6 {1 }% D
{& j' E% b4 A/ j6 {+ y- D: J$ [! u
        platform_device_unregister(&da850_evm_tl_leds_device);
) j& U& i. Q  ]7 B, t% U9 ^/ v% [7 j
        printk(KERN_INFO "LED unregister!\n");
% d$ u8 b2 l; i}1 C( ?) F9 @7 k1 O

; G9 d7 Q* @+ E. q! k& @module_init(led_platform_init);1 Y  {7 `. `# Z; s
module_exit(led_platform_exit);% D( h, r& j' q* e' l$ c. ?

- c1 W- G# D! p1 IMODULE_DESCRIPTION("Led platform driver");% B' E9 x% ?4 H* z7 m, c
MODULE_AUTHOR("Tronlong");6 t3 S0 o2 r+ e9 k, ^
MODULE_LICENSE("GPL");; W" k! s4 G1 Y7 u% K0 p8 U
0 [, L$ |/ S" T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 14:15 , Processed in 0.042110 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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