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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 W6 H9 Y4 y" P1 c; p
#include <linux/init.h>* K! G0 c' s' T2 c! ^$ ]6 x
#include <linux/module.h>
' ]0 y* R8 B, U& o1 r#include <linux/kernel.h>
! ?* H5 @( n- c#include <linux/types.h>0 I- K9 T% o- X$ i/ [4 O
#include <linux/gpio.h>
! y1 e0 l' l- \, [5 v" l/ [#include <linux/leds.h>
% i0 p- D$ G' B1 h" J$ T3 j: o1 r#include <linux/platform_device.h>! F! b1 I! f, m' j8 s9 w( }) k6 {) s

5 _# H* f8 t: b8 G) \#include <asm/mach-types.h>9 T" {* l. I7 \5 K
#include <asm/mach/arch.h>
' i- M0 ]& F5 {1 K#include <mach/da8xx.h>
( R* P; V7 P- _2 v" n#include <mach/mux.h>
7 H& i( ~, [! z/ A! I: O& f6 g+ c& s4 B6 G. h* |4 m, e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# ^9 b" }3 F+ ?/ m" e! y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ j' U# \( L) [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( O+ P' X6 C; k* J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 \1 M' t6 B! I3 `6 V
* E7 h/ b+ Y" a2 q. S3 q
/* assign the tl som board LED-GPIOs*/
; c+ q) _7 q* `; J3 E4 istatic const short da850_evm_tl_user_led_pins[] = {
: k3 S. l5 E: L' Q- i' V8 |$ \" g. v3 V        /* These pins are definition at <mach/mux.h> file */9 {+ V* c# o: ~, a
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( G8 R8 s: Z; {5 m2 _+ a: C
        -1
% I% [6 v2 O0 V2 }4 N# F  @9 s, `};- _; l9 f8 f* x0 b1 D: ~3 n
0 I7 [# n" _4 J
static struct gpio_led da850_evm_tl_leds[] = {
$ H: E6 D7 c, e5 w- E* P3 ]        {
& q; Q6 ~- E4 u" V0 |% X4 C                .active_low = 0,' H7 j. R1 g6 z) N: p. Z$ a9 X
                .gpio = DA850_USER_LED0,) u( d5 U; F7 t% U! y* V
                .name = "user_led0",# `0 B: ?7 q6 J3 c# q) v
                .default_trigger = "default-on",4 @$ g: s+ z8 Z! B7 D% d' p/ {2 _
        },
" [( p* G2 k9 L5 ^1 `" z+ @# h        {
  B$ w6 C3 [8 u9 s; k! T9 _                .active_low = 0,
  Z! b7 H7 Q$ r% \6 j                .gpio = DA850_USER_LED1,
6 w6 p" ]: S6 v                .name = "user_led1",, {! \/ e8 t! ~8 E7 A
                .default_trigger = "default-on",8 o. V# l: f4 F
        },/ Z( ^2 I0 @$ D
        {
. X! l- c6 o# |                .active_low = 0,
: P- ?. Y/ U- {                .gpio = DA850_USER_LED2,
! V9 c* A' O* T) R; i/ x  F$ q                .name = "user_led2",( a: A, l+ s; D$ \) ^8 h: V
                .default_trigger = "default-on",
& G2 E' E2 G& n; E* g        },
! A$ N* e7 \& t5 K9 M        {! b5 v6 o- v  L5 G
                .active_low = 0,
# f% l$ ]0 ]7 G6 |                .gpio = DA850_USER_LED3,
) u; g. {1 H. Q, a. x; o                .name = "user_led3",& l# e. E6 k1 Y4 h- \$ c3 s# f
                .default_trigger = "default-on",* G# q9 p; e# B  r4 V- r
        },
/ w9 q' E- T* _5 [" u: k};/ L& }! ?5 a" `( d, J
$ f5 p' D3 h& Z( j, h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 Z9 o$ V3 c1 }7 i        .leds = da850_evm_tl_leds,: c: e+ _7 Y- \1 b6 |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- y0 _! x+ T0 i4 Y};* f! u8 b& B$ T. e" `

3 n  M( y2 g  D5 P0 D* Kstatic void led_dev_release(struct device *dev)
* e  ?2 |3 i, P. B+ ]/ L& t3 W{5 V: ?2 u! o6 ]  X
};
5 x+ ~( d7 R7 \8 W; i& X: u& E$ y. W- |$ S$ b. b# ~$ J! s# n5 a
static struct platform_device da850_evm_tl_leds_device = {
" g2 ~3 ?5 J6 v& r5 X% a/ e( x9 S        .name                = "leds-gpio",( M- c, o' B$ w/ `/ y: i
        .id                = 1,
9 x2 W! D2 T1 t8 J6 |- X        .dev = {/ V# H0 M3 d4 r
                .platform_data = &da850_evm_tl_leds_pdata,
- Y% Q+ A2 e9 T0 P. I                .release = led_dev_release,# w2 t" k$ }( t/ s% [+ Q$ `
        }; ^/ O5 v* B- r$ b! I  G3 d+ F
};
8 _8 [) g  Z" L/ H$ a: Y; a6 I0 Z) V) s( m8 ?: K
static int __init led_platform_init(void)
) v, V: l9 P1 X1 R; B7 S; k{
% Y2 j* T0 ^7 C: B3 u8 N        int ret;* _0 y- M0 f; T# W2 {: T
#if 0$ i0 B  E8 B6 M/ A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
( ~# W4 F+ o) q* x2 I        if (ret)
. y! G8 |0 e+ F7 e) M: H2 p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 L4 ]: `* w5 `% D& s. j; _                                "%d\n", ret);
+ K0 T4 m) z. ?+ z( u#endif* |* H$ Y2 S" k
        ret = platform_device_register(&da850_evm_tl_leds_device);
# F, e  j3 D: B        if (ret)
! E" b* }( n3 O2 }2 ~  Q                pr_warning("Could not register som GPIO expander LEDS");
$ p. g' ~! q, i        else
9 |, ^4 L3 g( z3 `  P* I6 F                printk(KERN_INFO "LED register sucessful!\n");
. R- P- `! w0 `7 |( P5 ^+ h+ X
1 n! F6 `/ s  x1 Z$ F' g7 I        return ret;- A% R' E: f% n
}% _& i6 U' R6 y$ x$ Q- j

& j5 @9 m' b/ F" a9 S: s# n; j& `static void __exit led_platform_exit(void)# V- t9 W7 ]8 l6 m; e' ]+ p$ i
{
& a7 W1 C3 D6 Y1 `& N7 l        platform_device_unregister(&da850_evm_tl_leds_device);- ^5 o1 {& U6 p" x: G. A

/ a* i% @5 e5 ^        printk(KERN_INFO "LED unregister!\n");9 }; A4 ^. |# F0 r; i
}
1 u, N3 d- d! D) c/ K
9 G9 Z' Q. f: i; Tmodule_init(led_platform_init);& @1 j9 H  @. W: L( s+ d
module_exit(led_platform_exit);1 U  Z% O% {$ s; S, Y

% n, g' _5 X6 Q! k9 ?MODULE_DESCRIPTION("Led platform driver");
/ D1 _; X) D6 Q& }" E' K3 S' ^1 p9 d8 zMODULE_AUTHOR("Tronlong");% B( N# K  _* L; l
MODULE_LICENSE("GPL");
4 K1 d+ h7 Z) y( d  G  ?7 M! R4 ?2 }" m3 B% ]; N& o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 09:48 , Processed in 0.047691 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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