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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ M5 |) [6 {1 A3 ]# O& l) v7 Q#include <linux/init.h>
4 o% A& d* o7 N#include <linux/module.h>
, \# d3 v& F& r) J3 {) }#include <linux/kernel.h>+ }+ s; t1 M  I% ?$ y
#include <linux/types.h>) I; z2 k2 u4 C) I
#include <linux/gpio.h>
2 L" i+ b2 _3 Q! ]* }6 J6 T9 L& m#include <linux/leds.h>- G) L& o5 h/ G4 e7 v( M
#include <linux/platform_device.h>
$ w) H! O9 s2 g
# ]' u# [- P( ?3 ~" b. V7 r  ^#include <asm/mach-types.h>4 G; Y/ s. h8 H* ^6 v8 m
#include <asm/mach/arch.h>
7 ?) j( W' k! U# b5 R3 U) E3 @3 b8 D#include <mach/da8xx.h>8 z; E. ]" N& d' t
#include <mach/mux.h>( p" b; t0 w3 N$ }7 f+ ]/ A

- l& {; ]" @6 z' L9 C  X#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 h& ]! m5 m$ |3 \
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
* o$ D8 `4 [! n! F* q' A3 e* z0 `4 @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% r- }1 M4 s( Y  C- I5 n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# M; p' K( A; g7 E! W" l# U( U0 M/ D+ L0 i. l- Z6 ?) |7 D) b
/* assign the tl som board LED-GPIOs*/
  E- |! x6 \' v6 q( ~- d; qstatic const short da850_evm_tl_user_led_pins[] = {) {7 X  U. j7 @+ u
        /* These pins are definition at <mach/mux.h> file */2 \+ U8 A# p- T3 h1 f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* l% y& U% T5 Z  Y        -12 k! P# o; [* A  n( J& r. ^, I0 L
};% J. S5 t; a3 {, k1 p

  b; Q# m% j, S4 ~static struct gpio_led da850_evm_tl_leds[] = {5 I+ J- V) X% [2 B
        {
/ F2 {# L3 |/ k& k. t& q/ X: \                .active_low = 0,* r8 g2 }( S* I
                .gpio = DA850_USER_LED0,
$ b& {4 H: p$ ]5 e' ~$ e                .name = "user_led0",7 b! a5 E1 g$ B
                .default_trigger = "default-on",
- E9 B: t6 i* @% @5 r! r        },) f8 H& K, p0 w8 S1 ~
        {
, Z  h/ b( {. b5 C$ H; [                .active_low = 0,
8 q: {# |9 H% F& J                .gpio = DA850_USER_LED1,
; }' ?$ x7 Y4 `  P. r                .name = "user_led1",- Q) p  @: _9 r' J
                .default_trigger = "default-on",7 v0 `, I: u$ j" I
        },3 x4 r- B" Q1 J* A  x$ M/ `
        {5 i9 n  d3 F0 Z
                .active_low = 0,( X4 M: Q4 l1 q4 Q& T  y; |: A3 b  o
                .gpio = DA850_USER_LED2,4 H" S* K2 O9 t: Q3 ^) }
                .name = "user_led2",4 q3 l/ ^* Y! m1 h- u
                .default_trigger = "default-on",
. J8 y3 t' E( s$ h% z6 E( N' ]+ U        },, s+ @- F& b3 c. p& b9 S
        {& ?$ t; t, G3 @+ A3 }5 L! M5 O
                .active_low = 0,
4 P# V5 X  e6 t                .gpio = DA850_USER_LED3,
! d. z$ w2 R4 r7 \; p                .name = "user_led3",8 }5 w5 E  a; J: ?# R) E& d: V
                .default_trigger = "default-on",2 n$ w" I+ C0 R: E
        },* n6 V4 Q! R. a4 B# U# M
};
& A; k+ M3 |6 T9 j2 D0 G) z7 L5 M* A4 A1 R
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. N) ?4 b" T3 S. V        .leds = da850_evm_tl_leds,
" J8 s0 n* k( i7 O0 F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),1 [! i6 b+ q4 L9 X( u
};
' O/ `7 a; x* h; H/ ~# M! X
( |6 Z1 j) a+ y7 V; [6 E1 e* `; Sstatic void led_dev_release(struct device *dev)
! X* ]  ]  {6 J7 r7 r{8 U1 n) k$ c% P! L# g
};, K$ h1 Q$ B, y# s+ W
- U' I5 Z7 ]. `
static struct platform_device da850_evm_tl_leds_device = {8 Z' U$ T$ v: v) b1 I9 k- o
        .name                = "leds-gpio",
6 O8 Z7 I5 T* y$ I# H        .id                = 1,6 U! @' @" g, S8 S! T
        .dev = {& h; c4 a: X  W. b# w; j
                .platform_data = &da850_evm_tl_leds_pdata,8 D. C) t/ q5 Q) H9 e
                .release = led_dev_release,9 {# V) R$ m, W0 _/ O7 t- V
        }% @. X7 l7 ^( `6 U- g. O! p8 ^
};
6 X. E8 M) i0 P0 `+ Y+ g3 [+ z0 o& s
static int __init led_platform_init(void)4 ^. r' c' h' ]/ w  O$ K. W0 Q
{2 W2 O$ C* p) S' Z
        int ret;
- u+ l8 w$ O! S8 D! o" M#if 0. P: o6 w( ?- d* ^1 K3 J; b; B% `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; [: P9 l! L: `, d
        if (ret)) N+ o( o7 z; |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 h( X5 K3 j6 v2 W6 E* Z; U5 x3 n5 Y                                "%d\n", ret);  D' i( s* J, ^5 {: F8 K+ N: @
#endif
. z3 v: `& i3 r1 W+ I        ret = platform_device_register(&da850_evm_tl_leds_device);' X) Y9 t( E& k, }! u, U: D
        if (ret); d' r* z6 ]. W) {( P) S
                pr_warning("Could not register som GPIO expander LEDS");
+ X. Y% j+ r& ^        else
/ r7 P: N7 Q+ T* x0 m7 w' R                printk(KERN_INFO "LED register sucessful!\n");
+ j6 [2 O' O2 b8 o* ]; v& x9 t# M: e+ i& D! v" A$ h7 m/ ?
        return ret;6 ?" l4 s1 V2 S
}9 t# u2 O2 o9 _+ w1 {" `2 K
9 F7 B$ g6 h2 z
static void __exit led_platform_exit(void)
: v# [! S/ m& z' O{$ a# N/ l9 P4 j0 c3 q
        platform_device_unregister(&da850_evm_tl_leds_device);
/ W$ V( I7 E- _% M7 k7 D$ g5 k; T  m) l# Z2 O
        printk(KERN_INFO "LED unregister!\n");* u; T! _" o7 q6 a* A- S" p; q! D
}& V* }& o5 ^$ c' ?( V+ P

7 I# _* x& {  l+ H0 cmodule_init(led_platform_init);
5 S3 l* }  X) i$ d- f( lmodule_exit(led_platform_exit);9 k# U; V; W6 A3 Z/ ^

( v% V) V5 w8 x7 i( H& \, G6 KMODULE_DESCRIPTION("Led platform driver");
6 }) f1 Y+ V% C; FMODULE_AUTHOR("Tronlong");) a: b; O: \6 F( N1 _% z
MODULE_LICENSE("GPL");8 T; V7 C. A! W0 f. n0 z* V0 F1 \

9 Q/ h* ?$ F9 {) G' ~% f7 M" B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 12:21 , Processed in 0.039922 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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