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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
0 U5 u& u4 k/ s' m. y& p4 s" \4 N#include <linux/init.h>9 S) x% w7 l2 r' A3 ]  R  R
#include <linux/module.h>
. p& K; j7 }* _3 T#include <linux/kernel.h>
7 [2 ~3 `' Q  S% L1 j& o: L#include <linux/types.h>9 n$ C! x, [3 I! l
#include <linux/gpio.h>
6 I, P  m$ l5 c#include <linux/leds.h>
' y: i, T  b6 P6 y4 F. y#include <linux/platform_device.h>
$ m; S$ U: H" u
% f+ i; y$ e* |% p2 u& {#include <asm/mach-types.h>
( i+ M( m0 l6 T: T. `: I3 S#include <asm/mach/arch.h>* ?1 S" i! N  d$ c- L
#include <mach/da8xx.h>' [0 i( B/ Z7 F- i8 N
#include <mach/mux.h>/ R+ j3 _0 Y& |! j7 B' _
9 O: Z) u$ D  K+ o8 c
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 {, c7 @% h% y6 e* L9 v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). C; T) w* V7 _6 U3 z$ _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
, t3 \8 W* H  m( g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 v" U% U/ t0 M" z6 k" I6 \( @. c9 o9 }5 q0 ]7 f
/* assign the tl som board LED-GPIOs*/
# \* m2 j/ H- Y, f) G6 w; q3 k: Nstatic const short da850_evm_tl_user_led_pins[] = {
- z' G1 y1 J  e: w6 K7 P' f        /* These pins are definition at <mach/mux.h> file *// W: n: X* s- o! R$ p3 {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 k  _) Z9 m5 J) D4 C% D        -1
- u. d2 v( V6 Z" z( ~};  ]* s  O3 A. v1 `
: X! w8 W6 y- q: V
static struct gpio_led da850_evm_tl_leds[] = {: [! i# M, u6 t; K" C  o
        {( ^& D* B$ D7 U! S
                .active_low = 0,
: @; z2 h1 d/ c/ u* c; _                .gpio = DA850_USER_LED0,
# ~$ {% ~" |; z' L4 F                .name = "user_led0",- @4 W; G/ z, U, h  t+ ~' W
                .default_trigger = "default-on",& L2 Y* j3 k+ O, k; l9 d1 B& `
        },
$ }. U; _: d! i/ L        {
( n( R( ^5 B6 ]                .active_low = 0,; F# ^, M& w7 B/ d
                .gpio = DA850_USER_LED1,
* D: ^+ h/ c  _& w2 p2 @, Z0 M                .name = "user_led1",. N+ y" g' f4 o/ |& t
                .default_trigger = "default-on",
7 u$ O0 e+ M4 N2 Y        },/ d6 Y: \/ P! w, C
        {9 c6 J& N4 l; S/ C/ z
                .active_low = 0,
! d- \* Y( F. O% B5 B! N" e6 x                .gpio = DA850_USER_LED2,2 H' C2 b* E" H; L# A1 `2 f
                .name = "user_led2",  j+ b0 S2 ~5 _
                .default_trigger = "default-on",
: k; L5 l  |; c7 ?2 a5 Q6 Z5 O- ~        },
& ^4 u: ]$ o2 U3 I" N$ I7 F        {% w: G0 }, t) N
                .active_low = 0,. c0 R; A( J/ p1 ]3 v. A
                .gpio = DA850_USER_LED3,- g9 V2 T, n$ _7 j
                .name = "user_led3",3 G4 y3 U& D& _5 }9 E, D
                .default_trigger = "default-on",5 B2 h8 L6 C1 k" r* o/ h
        },
/ y4 C5 z9 B8 ?7 z};
6 B9 T* w# C3 u$ R* U2 [
) c. B6 T! G, R8 X: S. G" s6 tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: @2 O) |4 G3 ]        .leds = da850_evm_tl_leds,
+ |# h1 \6 d& r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
9 S" l7 n0 B% y: b/ I};
+ b  i  e: l$ {* _9 L; f4 A5 _, U0 e* ]/ p: \. R, I+ ~8 ~
static void led_dev_release(struct device *dev)
$ T0 p* }, u1 Z6 d2 ~1 p3 K{! |8 y+ {: j0 n3 s
};
: i. X/ ~8 h5 B9 u  H* e2 w2 N* o
6 ]; V, _5 n" y/ }& X+ |0 Qstatic struct platform_device da850_evm_tl_leds_device = {
0 o  Q; w6 T( o, _5 j4 k  z; A* `        .name                = "leds-gpio",* q: ^7 T' i1 d' |9 i/ j% @2 j) o
        .id                = 1,
; R; m* z3 g$ e/ ]        .dev = {: D1 ?: z) O! D8 I, ^
                .platform_data = &da850_evm_tl_leds_pdata,8 G: \( M7 H- k! S' k! E
                .release = led_dev_release,
# y& U- S6 B& A- b- R; }        }
, A' b# b( l* O% h* G1 y' e0 b};5 x, M0 z/ u; g; d. b' u% Q
, I+ Q- V' n% c
static int __init led_platform_init(void)
3 p: X. j4 \5 h7 \1 P/ r; A{+ a3 A+ K+ C& M
        int ret;1 g- z* A3 q/ n4 C9 Z+ @* k
#if 0% W; g7 ]+ _% V- O: s
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) ~7 }' z5 H  X: I& ~
        if (ret)
5 _1 p! B  v) Y1 Y( I: Z8 g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ O! i$ _. q: c" M9 j2 m0 W
                                "%d\n", ret);6 }1 f6 z. b1 N3 K4 L' c
#endif$ h8 J: j5 c2 _  `3 u
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 [( `! X/ ]6 {9 G5 m        if (ret)$ c7 ]" o7 S+ s; K( K% [
                pr_warning("Could not register som GPIO expander LEDS");
* T1 [$ T% P* R) u4 D% H7 y% ~        else
' {, l+ ?" H! s1 \  r' w                printk(KERN_INFO "LED register sucessful!\n");
8 i" l' Y3 l1 W! e: N9 W6 ]5 B* W; W
        return ret;
. A+ I! ?5 C" M! i; [1 ]% z( Y% S}
/ j- U' v' F8 J! }$ v3 V1 o6 }$ f0 x2 P; I
static void __exit led_platform_exit(void); d- j- s' S( f
{
+ n" n) a4 n7 _3 I% x% s! P& b        platform_device_unregister(&da850_evm_tl_leds_device);: I, w% y4 H% v# u, N2 d; y8 `
3 Q! O8 j! y8 v  G% C& P) b
        printk(KERN_INFO "LED unregister!\n");6 Y  Q, i9 m$ h% B: k  }7 n
}4 h. Y" q, l$ G* }

8 e& q0 E$ p4 W# ?- F+ [% qmodule_init(led_platform_init);
6 {3 r5 f' p; t6 Pmodule_exit(led_platform_exit);! f2 }8 m* A* Z  r, D3 y* i( h  p# Y
# M% K5 {  @0 }+ n# q% C$ [* ^# n6 i
MODULE_DESCRIPTION("Led platform driver");/ {% O) J! A' g5 s" G5 @) _
MODULE_AUTHOR("Tronlong");
5 j& z: m% _( `+ kMODULE_LICENSE("GPL");$ p. f, j/ ?9 U3 G  i, b0 o
% q7 G: J2 ^% F7 i% ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-1 01:06 , Processed in 0.043772 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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