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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! C. O/ h) ^' ?  c: }/ Q" U
#include <linux/init.h>
7 M$ R- ^. {; {+ }. y' _#include <linux/module.h>; Q7 n# C; ^% t; t
#include <linux/kernel.h>6 r/ m+ i% |3 P/ d
#include <linux/types.h>
/ J) \6 l) N- k3 l1 D#include <linux/gpio.h>. {$ q/ @$ h7 U2 P# R& L
#include <linux/leds.h>
, N* |5 g2 V7 a" Q#include <linux/platform_device.h>, n, R# L4 D2 U8 n0 ^
, b, P0 w$ B) o% ]" G9 f/ p
#include <asm/mach-types.h>
9 R: ^5 z2 y, o7 g6 K4 d# |3 S#include <asm/mach/arch.h>5 i* g1 U% t& N- _
#include <mach/da8xx.h>
) g  Z1 U# B. B2 {- c( D, b1 {' B#include <mach/mux.h>
1 v& n9 e- h3 a7 z
1 u: S1 V2 c6 K/ d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* Z4 [5 b; |% f. Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ Z. w# F& Z8 ^' M8 K+ z# ^& F, H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 g% e6 E1 t1 o# \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& {, b. l- P+ w8 d9 j

5 l0 [* q$ l$ `+ W* r9 l8 i/* assign the tl som board LED-GPIOs*/
% w/ p) o9 ?7 E+ `+ Bstatic const short da850_evm_tl_user_led_pins[] = {
, Y- t5 K" e3 g  T        /* These pins are definition at <mach/mux.h> file */% T6 I/ R4 c* ]2 S$ P0 M" `! J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 _9 x1 H" G: L" z' _
        -10 [" C% ]( }  B4 O
};1 X  \/ C; v, n- v- G5 K
- C( [5 E' n! {- T$ z
static struct gpio_led da850_evm_tl_leds[] = {1 ]- ~2 L0 H: x: e  i! d: g
        {
7 a7 j& G; X8 q% S- H                .active_low = 0,! r% P* x7 m: b6 e2 e( j) ?
                .gpio = DA850_USER_LED0,
3 x$ R$ V( y. _# @# [$ ^                .name = "user_led0",
4 B! ^1 W# O* c" D                .default_trigger = "default-on",
. v% w* u, x8 ]8 g) o* M& ?1 j3 F        },0 r7 w" j" D9 d# K
        {! u* U2 J* i6 I) u, G& t2 b
                .active_low = 0,
5 [7 X+ L- [( R3 m' H( u  k                .gpio = DA850_USER_LED1,
+ N% S% a" L, l0 u                .name = "user_led1",7 \* W( y& R1 z  Q5 \. ]4 f
                .default_trigger = "default-on",
6 t/ G! N) T8 |3 @) P$ ~% L        },
$ Z- G$ ]2 t& [; ?        {' e% @0 C) E8 b) m0 J* ]
                .active_low = 0,
) g1 p8 Q" p% {1 z. ]' h  H                .gpio = DA850_USER_LED2,
' \4 X, t: P" \- ^                .name = "user_led2",
- Z1 D- m( P7 C# `1 `                .default_trigger = "default-on",
9 g" \( a( a/ \! D' b8 B        },2 C: o! `4 P) m6 \
        {& H3 \, i7 ?2 K: |4 Z! |: }
                .active_low = 0,1 O% [$ ]# V8 d% e! [
                .gpio = DA850_USER_LED3,  X0 b6 C/ s7 r) Q' I
                .name = "user_led3",' V) d' G9 @; E8 D- h, H+ v* ~
                .default_trigger = "default-on",
- [* @8 v+ S1 \8 p4 K: l6 e        },
: `2 p3 l. ]# z' H1 W};  Q$ R  \- N8 ]" O

- n: {. L5 n3 D5 _) H( O8 Kstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 b- w* W" a) S        .leds = da850_evm_tl_leds,
, y' w  i) v2 c  ^' t5 J        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 _& X, [5 }2 ^- q6 S
};
  s) p# d; O; \! {# j9 M; `
& O9 X9 l, X( w' Jstatic void led_dev_release(struct device *dev)9 O, W% u# w) }7 q. u' {) M7 \
{; o1 A. j: E* v* H" O
};0 K# }6 X9 r7 M5 T* ~
" _" f* Z8 W$ j4 A
static struct platform_device da850_evm_tl_leds_device = {$ w+ {- |7 E- d/ P
        .name                = "leds-gpio",. b8 H3 W$ R5 C6 d9 g+ G5 \2 e7 B
        .id                = 1,
( X3 j2 ?- D. ~  p: y) d. c% }        .dev = {3 O. d- `9 W' j8 f$ [( j4 e
                .platform_data = &da850_evm_tl_leds_pdata,
1 i  |. N1 k- K! T                .release = led_dev_release,
) h0 G" Z1 x) l8 z* ]. R& @        }, h6 k2 }/ A2 b* |- x
};1 M( P  }- s3 l9 B% K1 C* T6 m
: x. {/ ~1 E- c
static int __init led_platform_init(void)
0 D, i7 E( M! }{% i7 T6 |7 O) s7 d& H
        int ret;9 [' Q2 Q# V0 b7 w1 b* }5 M
#if 0
0 r. J0 m- K# X- {9 {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' b: U( Z! T- e        if (ret)% m& Z* |6 K2 k6 f) ^7 l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 }, Y& F6 e: {$ n; o4 v  V
                                "%d\n", ret);) Z" a( S6 Y9 D- v) |( j
#endif
, s% b3 a2 U! Y        ret = platform_device_register(&da850_evm_tl_leds_device);
* a! ^3 }& u$ x1 {# b8 v& ]        if (ret)/ t4 v+ N& y' g* I0 e% T
                pr_warning("Could not register som GPIO expander LEDS");
0 r/ `1 |  _: F$ y$ t. Q        else
6 \7 L5 U  g+ [                printk(KERN_INFO "LED register sucessful!\n");9 N% i3 Y( S: _! q% w; I

' r$ Q5 F7 u( c3 z4 d; l1 I3 I        return ret;! X1 r5 t2 ?: m' a
}
# b6 M* I! g# ]8 A* G7 K; [
4 A' Y6 U" r  B! S+ v* ~8 Kstatic void __exit led_platform_exit(void)' Q0 H, ]9 ^+ J4 @
{2 n0 w* {4 ?5 n/ F6 g
        platform_device_unregister(&da850_evm_tl_leds_device);
2 i) W4 [5 I+ A0 u  [8 j1 `, j- [" T0 c8 `4 H5 u# S# u8 C
        printk(KERN_INFO "LED unregister!\n");
: C: V- b& e; @! }}
! I; t4 I0 s' z% L- b+ x& O( E
( v; Q. I+ W" M0 jmodule_init(led_platform_init);0 {8 t, ]) b; M! T( t5 w0 C5 H2 B- V! ?
module_exit(led_platform_exit);- u5 G5 O3 [9 U; Y

$ p0 Z" p# G6 a0 m' I/ E6 SMODULE_DESCRIPTION("Led platform driver");& g' }" j- a: r- `+ _
MODULE_AUTHOR("Tronlong");
/ P) t5 ~7 e7 a9 P6 eMODULE_LICENSE("GPL");
  `2 H' M, T0 k% }5 X
) X) G: u; U2 F9 B* _
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-13 21:42 , Processed in 0.042716 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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