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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- q$ f) ]. u' g
#include <linux/init.h>3 @! P0 d# i$ I4 |" u, X- O7 |
#include <linux/module.h>. {3 b* Y/ i1 a; a  Q
#include <linux/kernel.h>
# g. x/ z# }( `1 F#include <linux/types.h>
/ ?- \! W" S2 _7 }9 N, v#include <linux/gpio.h>* K3 U, T/ @& b7 Q! y  i0 t
#include <linux/leds.h># X2 ~/ d! w' T. p  u1 K
#include <linux/platform_device.h>/ a, I9 u& a/ i  x+ E0 C
  h* F7 M. }/ Z) ^2 K0 ?# l
#include <asm/mach-types.h>
3 C7 O8 h1 A6 @) _$ c% N- ]9 y) C#include <asm/mach/arch.h>! `- o! I4 ^# o" [/ r
#include <mach/da8xx.h>
$ m5 A9 Y2 r+ A& @8 D% B7 u, v2 o#include <mach/mux.h>- z6 M, W# a3 G8 h" v9 z, g; `
: T4 S$ j" E8 G; N9 `0 h9 n; M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' d  h9 n3 V# A, X
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: n5 ^6 A: M) g$ R. m1 [0 J#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
! k0 d- A7 t, X. z. o- n- s#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% k/ v, J: t& r3 ~. ?- F+ L# ?& T, i% a6 P0 k2 C
/* assign the tl som board LED-GPIOs*/* C( L  n1 f' V$ X4 u& d
static const short da850_evm_tl_user_led_pins[] = {
6 I+ T. u0 ^( ?) H        /* These pins are definition at <mach/mux.h> file *// x3 h0 I$ M& j
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ B% U- I0 y4 _        -1
+ A; d8 o: a' D+ W3 G1 m9 j! G, a};# ?; j( ~- \+ Z
$ C7 F1 `+ H9 R/ R
static struct gpio_led da850_evm_tl_leds[] = {
! a8 w" B3 |( f; o$ Y. l4 L        {
* P: {" E1 A6 N7 p                .active_low = 0,
" \% z! {8 @- q# e                .gpio = DA850_USER_LED0,
( g  H3 k/ `4 g. d. |3 [4 K: N                .name = "user_led0",
# W- c- e! M) J# ]+ ^6 {' d                .default_trigger = "default-on",  _- W$ @# k6 F$ Z. q4 L5 S0 r/ F
        },$ M" k9 F" v/ p6 C) e! T2 J$ H
        {
0 ~' g1 h, t5 F1 o! A7 C                .active_low = 0,
- Q- S' Q- g9 i                .gpio = DA850_USER_LED1,
: I4 r1 H6 ^! @4 W1 D                .name = "user_led1",
8 W' j0 d* E9 R) k                .default_trigger = "default-on",
& V/ T4 `: \5 E2 }( I% g        },$ e3 y4 e: h8 X# s$ J5 v
        {
! W: \/ y4 T, ~; S2 `3 h9 `" i                .active_low = 0,+ O" g+ a  R, s! ?0 R, z! Y
                .gpio = DA850_USER_LED2,
4 u+ p" R* n% p$ J                .name = "user_led2",
/ [5 B2 C# p) k9 `& v$ D" y$ r4 }                .default_trigger = "default-on",8 n) @. D3 L! I5 s0 r  h( L0 a& ]
        },
- A* `$ X( e8 H        {
0 F9 w' x* r3 i# @                .active_low = 0,
1 ~0 t  h1 N, C: w& O                .gpio = DA850_USER_LED3,
; Y9 E. _/ `9 z: ]2 }+ J& P$ N                .name = "user_led3",/ R. _2 {: ~& N
                .default_trigger = "default-on",, G8 z6 y7 W/ v! z. H4 H- k; S
        },5 k; z1 Q* G, H/ I; [! ?
};' u$ ?0 c* S5 C8 V' ]

5 ~" T) r& f' J5 @+ V6 {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 C7 g7 |! F: S- C
        .leds = da850_evm_tl_leds,
8 L" K  \2 z7 ]! U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) g5 _8 v5 V- r! ?
};
5 E% J. p( K9 U
6 l4 p4 _$ q. d5 Y1 W0 Mstatic void led_dev_release(struct device *dev)
/ ?5 R  x8 @$ r' {{( U3 L  I/ n; w- V8 x5 w
};; E5 @, v  J5 @) Z2 S

8 R: e% y/ n0 T1 F& c. J* ^3 I6 o$ mstatic struct platform_device da850_evm_tl_leds_device = {
, T. L3 p/ X- a0 l        .name                = "leds-gpio",
1 _+ J; `9 b6 g' k% ^" R        .id                = 1,  e& s  P' S. o: F
        .dev = {" b7 [- u) g1 ^. R$ F# N
                .platform_data = &da850_evm_tl_leds_pdata,
( P: v! D: G4 M$ f+ M9 @                .release = led_dev_release,
* d( F$ K7 u% B6 D/ r4 j        }8 J* f: Y2 c1 e" D/ x
};4 Q& |6 T! V) c
* C5 |# A/ Q* `* `) e
static int __init led_platform_init(void)
9 p2 @: U. \- }" [) }8 m{, T+ y* N. ^* N. v0 c# {4 v6 N* I- ]
        int ret;5 h! L3 B6 O: g+ u
#if 0
/ M" ?4 m0 n8 l% v; v. P2 T4 Z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- T) h( c/ s* _) p5 r9 E        if (ret)& v9 D" y0 T& W: A( G$ E
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 }' M" k6 \$ |: b- R) M: n
                                "%d\n", ret);
8 W6 [8 E) e  j. T% `; [  {#endif
; P  |$ M$ y' i        ret = platform_device_register(&da850_evm_tl_leds_device);
# B( Y! ^5 S4 j6 B        if (ret)
9 p4 k9 G) {; _0 _" Z3 ~                pr_warning("Could not register som GPIO expander LEDS");
6 u* N7 c/ I% d6 \; O4 L        else, s, b" B8 D4 z) E, ]9 O
                printk(KERN_INFO "LED register sucessful!\n");
) O: u2 D5 d  R8 ~8 v
6 ~5 r; y5 C. x% r        return ret;
* z4 P4 F) [% g: Z' ^1 W}- }) ~* m$ p9 h6 d  a7 L
) ?& @5 @7 K+ u% u# P
static void __exit led_platform_exit(void)
& W7 i6 w! T7 ?{
6 F9 C; z( J3 p        platform_device_unregister(&da850_evm_tl_leds_device);
7 Z- `+ m! i  S
) a  A! u. \6 o3 D3 `; U6 G        printk(KERN_INFO "LED unregister!\n");/ A  Q! e  V; m; |
}
- t* h( M$ K# w& K6 i& B! I
2 V5 Q+ z$ S' g3 F7 V" T( [module_init(led_platform_init);2 y2 g/ W2 f2 r6 b8 B/ @
module_exit(led_platform_exit);8 E3 T  O# k8 `/ M! n  f; B  v- ~. o

" e. g1 n. Z" U8 g/ R" G6 B- g" MMODULE_DESCRIPTION("Led platform driver");" A, ~! T3 [0 ?7 a
MODULE_AUTHOR("Tronlong");
9 ^) e1 [: u$ p$ R/ K7 n& UMODULE_LICENSE("GPL");
8 e$ g  u" K* c0 E' o$ E4 |. Z4 G9 o0 b! }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 07:28 , Processed in 0.039564 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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