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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. L) l. n# Y$ l$ E; g" c; q! p
#include <linux/init.h>4 N; ^4 L3 \  A# o9 s  L
#include <linux/module.h>
- t  Z2 Z. q7 V#include <linux/kernel.h>* h) r/ X, x1 O. x; a1 }- b& l; R  C7 l
#include <linux/types.h>$ W/ ]/ P6 |. y1 ]
#include <linux/gpio.h>
2 O7 E! j9 h. ~% H$ |#include <linux/leds.h>1 o5 e9 T7 v9 g$ Z/ _4 G+ d* F# j/ W
#include <linux/platform_device.h>& t% R6 J; }) m/ b  S% J
$ U5 g) H2 ?/ ~
#include <asm/mach-types.h>
/ m5 n4 v" r: g: p3 N) H9 k0 h. ~#include <asm/mach/arch.h>
( d) @/ h' H9 q8 ~3 D( I$ D3 I' n#include <mach/da8xx.h>
) R  V! N# Z$ U: f2 R2 Y8 N#include <mach/mux.h># q; _2 A* U/ o0 ]7 J; r

, i5 }7 k. A0 C) F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* I' G0 O, {' a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)4 M8 T- t4 ^% S9 I
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# p3 A# \6 r9 l( \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- \. k( @- g- ]  ^% r& X  S# z

3 y0 y; i& [" [/* assign the tl som board LED-GPIOs*/
8 @$ [+ d+ s- h4 ~static const short da850_evm_tl_user_led_pins[] = {; C7 R  M$ J: x7 C0 I( T
        /* These pins are definition at <mach/mux.h> file */' p& ^& G- z( S" ~$ j" v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 x0 m* t9 ^+ p) J
        -1
0 X/ y* g4 t& ]& C6 [7 N. b; B};
: N! T# d7 W. }' @9 m* i# A' U& i7 Q' h. V+ r1 O* _6 O. G
static struct gpio_led da850_evm_tl_leds[] = {4 z; O7 q. a/ z6 ]3 p+ W, `
        {
" k4 f* V, j9 W6 z                .active_low = 0,2 S9 d3 F$ ^* }& H6 z& G* [
                .gpio = DA850_USER_LED0,
/ v9 G: [  L4 |$ c  E                .name = "user_led0",, h9 R9 {( ^+ }5 }/ h
                .default_trigger = "default-on",
3 q8 B! p" Y$ }- n) ^) F: h& Y        },9 E, l" r- K4 E6 q( f2 o3 ~
        {
. j2 W5 f6 ]" G7 g; k                .active_low = 0,
3 A3 R8 y- a' [/ z! O" P                .gpio = DA850_USER_LED1,
& R5 ]$ Z9 L# j4 y                .name = "user_led1",& v$ n4 _0 ^) _8 P& ^, F) Z' @
                .default_trigger = "default-on",1 w3 t0 J, e2 w8 l( V2 Y% ~' M% K8 X
        },2 ~8 X$ p" K$ J
        {7 W) p3 M9 O& N
                .active_low = 0,
0 C9 @% b! p! a: y, }                .gpio = DA850_USER_LED2,
) u3 [6 @% a6 h% c' E2 }; x                .name = "user_led2",  k# M9 J7 i$ v% T
                .default_trigger = "default-on",
( }% o( x6 F5 X. m0 T- T        },
' d$ V9 o- k7 U  I3 E        {
5 h  K3 M6 i  s* R! b( B$ M                .active_low = 0,, n3 l9 t0 M4 E& ~7 Y7 [
                .gpio = DA850_USER_LED3,
( x( Q, b* }' A. G2 _* S                .name = "user_led3",# J5 ~7 k9 f1 x5 N& D1 U$ c
                .default_trigger = "default-on",, v5 e+ l+ W' V& Y( j
        },
6 ?9 q* n5 }/ b0 a( m: f};7 g; p. v* @' a- H9 r8 \: l4 s" k
( f. }* ?  }/ e. e6 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 {1 l+ C# s: C        .leds = da850_evm_tl_leds,
; J) @, c% ~* o$ F7 A/ }        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 {, q& N5 W& z. H9 ?% y
};
/ p6 @8 E5 `! y: {9 d! c* t  V, w& i' G0 ~( T2 |
static void led_dev_release(struct device *dev)
5 R, I8 J& E5 E" W' B! w$ c1 k{7 ?, v, ?% q# X" L+ }
};
4 @4 t7 }2 m; G, ?. F( m" C! z  X
static struct platform_device da850_evm_tl_leds_device = {% Y' |/ @  |; R( K9 C5 [6 U( S4 S
        .name                = "leds-gpio",, _' ?! z+ O+ U/ X2 |8 N) a
        .id                = 1,4 u1 H) p4 @+ N% u7 b8 Y/ _- ?
        .dev = {
3 u. m3 R7 |) R' f. e* K                .platform_data = &da850_evm_tl_leds_pdata,1 V/ c3 r! V$ S, d
                .release = led_dev_release,8 ?+ `3 b4 ]9 o* G7 h
        }
6 \, v7 m' j7 O2 z* Z};
9 w  W# \0 k+ G+ z- C/ e
+ E- D/ F  f# c9 Dstatic int __init led_platform_init(void)
; ]% y9 A8 K+ ^- c{, e9 ^3 N0 W+ ]5 v" K5 t
        int ret;
) p9 p0 E) I6 X7 E' r( A  \. z" \#if 0
6 T# Y& f: `8 r: S        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* v) L4 k5 o- R1 p        if (ret)
3 _$ }/ X) S. Z* U. L7 f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 X- P8 M. s1 r/ ?0 y% R
                                "%d\n", ret);( X' U& ?2 b% r
#endif& E2 h9 i( B6 ^$ H' C0 p
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 u( Q, d$ W( Q4 m) {& D" f        if (ret)+ u3 ^" ?9 [6 o# X! B7 k: U; D
                pr_warning("Could not register som GPIO expander LEDS");
; j) F; `4 H* E6 q$ W1 J1 k        else
( B% z3 Q+ @0 S8 M2 F                printk(KERN_INFO "LED register sucessful!\n");1 J3 E8 |2 q' U8 R6 z: [1 P; A" l7 Y
- Z, c0 w+ I* X+ q4 ?6 j# T( A
        return ret;. z; t4 ?$ |0 L2 Z' [. M/ o4 |
}( Q. ]1 A. s3 h& u. |0 Z

# O4 X* N# ^  k( ]; W5 l) a0 Q# hstatic void __exit led_platform_exit(void)5 r7 `  o' z3 R* Q) Z3 J6 F9 H
{
7 v8 u) n2 A, n# o0 ~( i        platform_device_unregister(&da850_evm_tl_leds_device);: s7 w9 l' I- x( Z) s& h) x
9 v) E  u8 M+ J- M9 a& e
        printk(KERN_INFO "LED unregister!\n");
( i: {1 c8 O. `& X5 ^/ \}
1 ^% B' @7 b5 k  ?8 e. ]+ i5 ^9 F- [2 u  Z# u! f# C0 q% F6 J
module_init(led_platform_init);, g  X: E  J& r9 q* E
module_exit(led_platform_exit);
2 e; s& F) _# K3 b9 G. v
4 M. S9 W1 B( @. c+ D# S" O" q  \: GMODULE_DESCRIPTION("Led platform driver");
5 J0 \  |; C& w2 X" s) w) `MODULE_AUTHOR("Tronlong");
8 m' u( G- y5 |" {2 \1 pMODULE_LICENSE("GPL");
- e2 a, F8 {: Q1 u9 l: ^9 H  \; G9 E' y6 P% w; c/ T  H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-15 08:56 , Processed in 0.037784 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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