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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# s$ E2 X7 z6 p#include <linux/init.h>
# Y+ F( }. r# I9 X$ t#include <linux/module.h>
4 T0 ?$ b1 M# U" Z0 @% U: {#include <linux/kernel.h>5 P6 T4 e* o0 i$ j, R
#include <linux/types.h>% c3 m9 A( p; Y. w0 [, g
#include <linux/gpio.h>6 N: e, c* F& l( ^
#include <linux/leds.h>
) N. E' @& e, c) R0 G# B#include <linux/platform_device.h>9 p: P% A' M, z# u

' H& ~% ?7 D9 L+ @#include <asm/mach-types.h>
7 W# `# a" M. R9 ~$ Z#include <asm/mach/arch.h>
7 R( |! C" F* u& K! G3 B' e#include <mach/da8xx.h>, u3 Q  [0 G  f2 e. g
#include <mach/mux.h>! R2 |6 G0 @) C- B" P
! j" W7 k5 Y' {) l
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# ~/ i( M, H. x  F/ a& ?* X/ A#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
( D* l2 R( [. K* [( G2 R; Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). J  T1 }) U+ U$ m  J, D0 ^+ n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# e- @* Y% i) N8 g) k! }. N* G+ a: o& ~8 L( Y! p% h2 }: S
/* assign the tl som board LED-GPIOs*/, ]# [( W6 Q7 D. Z4 y/ y/ r- }
static const short da850_evm_tl_user_led_pins[] = {
6 {5 v  r$ Y- A. T        /* These pins are definition at <mach/mux.h> file */
/ c1 D5 s/ e6 p        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ N" Y& e  |" V) y
        -1
) ?$ P: b% z2 e& j4 D};
8 f8 M& g9 v) ]' f- A
' x$ o* ]6 B" {: Tstatic struct gpio_led da850_evm_tl_leds[] = {+ d% E- z0 P8 X4 y3 l
        {
5 |- w, s  s5 g, p9 h                .active_low = 0,. n+ }7 }% P% }( x% ?4 q
                .gpio = DA850_USER_LED0,
- Q% d4 ?+ `# u1 _- f                .name = "user_led0",4 w7 d  B2 C/ x' H3 R, a( K) T
                .default_trigger = "default-on",
  k' R- v" N6 Z$ n5 c  D        },
1 X( \6 ~% q. I2 e        {4 y; H% c: ]# N# o% r5 N
                .active_low = 0,
2 Z- n7 m6 ^; t! N6 t) O                .gpio = DA850_USER_LED1,% D+ L+ n( t! G7 W, b/ \0 _
                .name = "user_led1",2 z& |5 q1 M8 f' R5 o: Q
                .default_trigger = "default-on",, O8 w6 M' Y: `; P
        },
- S/ _/ B3 K, e0 n        {; m4 a$ ]4 S+ O  I4 p  M
                .active_low = 0,
0 q8 m3 T9 |  g, P. [                .gpio = DA850_USER_LED2,
: p0 W6 s  F" X* M- r                .name = "user_led2",0 u  {% ~$ b" J7 k8 D' n
                .default_trigger = "default-on",
& P! A3 b" ?- i6 m' l        },
5 K3 j  E) h' {8 r! R, z, j        {
3 a0 o  M  N: ~# P( E/ R                .active_low = 0,  J! x: Z0 {" k$ k  q
                .gpio = DA850_USER_LED3,
; S5 |4 F# d1 z( c: q  u8 q- i                .name = "user_led3",( a% _/ R; M; u( |, z# h  l6 H  ~* M) e
                .default_trigger = "default-on",
0 f7 `+ l2 F; I; X5 A) s        }," L6 A+ g& ?  u4 h5 I" a
};- T6 f- A6 k! n2 Q9 c
$ W, p' V& n; ^8 w* F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( f9 M) L0 V6 }: e* T8 L7 [
        .leds = da850_evm_tl_leds,, w9 I0 p. d7 s. n) P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),! r% [' ^. W7 _: @5 H) F( k3 o
};
6 }; ?; `, Q0 n- l& a5 t1 m- |# ]' ~: `  r5 ]- L% o
static void led_dev_release(struct device *dev)
4 b$ [1 G8 J; @{
# y) P) j, c' L; b3 y};
$ }" ^5 z3 t/ X/ r* _3 L5 K4 q
! V' h7 i$ ?3 s6 X9 Fstatic struct platform_device da850_evm_tl_leds_device = {
3 M- F% K0 }2 l0 |/ A: U4 k* g# k+ b        .name                = "leds-gpio",
; W. O; ~2 {9 e* m/ Y        .id                = 1,* {9 F  q% Y; G0 F' g+ ~- A
        .dev = {2 E" _/ l4 }' |) P! \
                .platform_data = &da850_evm_tl_leds_pdata,: E5 O- d( Z5 }0 y% n$ |
                .release = led_dev_release,
2 a9 b1 y: L: v! I  B8 D( j* e: R        }
; Q2 g' ~; y# V2 I% F};
# l* T" H: Q- G* [" `; L" [4 b9 P
  E- }5 y) y( _! F9 p" l7 \static int __init led_platform_init(void)
4 j& r: Y  m$ o( [4 f% o% U+ B{
# ?% D" e2 }0 m/ V        int ret;* f/ L& I% k. h% S" f7 j4 u
#if 07 B. a6 Q, S% M" O" y5 i- ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 a) t9 ]6 O& s* }2 z5 C' A5 E
        if (ret)5 K5 K" A. |& x6 w6 P; j, \7 G# R
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# n, Y, w# j5 [  G: R1 k6 c5 p                                "%d\n", ret);
: _7 \; \2 R5 Y) o#endif/ d' s  F+ J( {) C
        ret = platform_device_register(&da850_evm_tl_leds_device);
7 D% S" Y5 q. s. V: Q, H        if (ret)  @" H6 V' Z$ T% g4 W6 P0 S
                pr_warning("Could not register som GPIO expander LEDS");
/ ~- v" ?1 ^0 N4 R- g- n% Q% k        else
/ K2 v: n& h9 S" q# h- A                printk(KERN_INFO "LED register sucessful!\n");
) U6 M/ J/ Y; z, r% W# J. I- v6 a% u2 P
        return ret;
8 z/ T$ Q+ r+ n# C* P+ f; ]}
6 Z1 J5 Q; z1 ]& X9 S7 X; b7 y# q: u4 H) S. Z4 [# N% f
static void __exit led_platform_exit(void)+ x8 v  @& `* T8 X, x
{
" v- S: o5 S1 z* a, d+ l1 O        platform_device_unregister(&da850_evm_tl_leds_device);
- U; p& Z& N1 b) b3 Z$ S% Q6 G+ g. G3 ~8 D& S
        printk(KERN_INFO "LED unregister!\n");
! R* `' o, G7 v7 v$ o% Q! M}
8 k9 o$ C' _# e2 T" }0 o8 |: R0 A; d6 m5 ^, j
module_init(led_platform_init);& _. [, N; G9 E. Q
module_exit(led_platform_exit);# b3 @" P- i2 W: _0 h( G
: t6 j( f/ |' w# G1 I* v
MODULE_DESCRIPTION("Led platform driver");2 y/ B: A# Q9 n+ A5 ~0 y
MODULE_AUTHOR("Tronlong");
4 o8 d& e7 j3 q2 I& t! M( X0 OMODULE_LICENSE("GPL");
$ i# C8 m# h  D7 F! a' v+ |- x2 j. q- m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-30 19:01 , Processed in 0.039547 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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