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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 n5 Y: p. E3 I
#include <linux/init.h># S- l# g" k- [5 ^
#include <linux/module.h>
: n  S. B& r: d#include <linux/kernel.h>; l( p/ p) w, |4 v% a- \; ^
#include <linux/types.h>& M4 P5 p. T+ W: m* ?
#include <linux/gpio.h>. u( j8 D, h2 Y' D8 x
#include <linux/leds.h>7 s% N- y5 T" i- p; [0 x
#include <linux/platform_device.h>
$ x" i3 b: @1 I' D1 B7 R# F; E  v9 E4 R$ m9 b3 B9 w% a
#include <asm/mach-types.h>
* \- d. ^+ l' C* a. U9 W6 D7 F#include <asm/mach/arch.h>$ {1 K  T$ b$ P7 Z% e: Z. U9 T
#include <mach/da8xx.h>
4 d( z) Y% I' P) ]! Q& q#include <mach/mux.h>
0 Z5 J2 T' X- a  T. K4 z
# [5 r1 S( n" z7 B+ h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ J. v. S( ^; e  ^+ `/ [9 Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 l& h* k4 j5 f/ ?3 r# {
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 H+ {: ]) V: f5 F9 b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)2 M0 b, K! g7 v. i% `, p% v
( m' N+ a- k5 Z+ m5 i
/* assign the tl som board LED-GPIOs*/3 l! ?" R& D. q9 p4 b8 {5 B
static const short da850_evm_tl_user_led_pins[] = {9 {, r( s. r8 D+ V$ x
        /* These pins are definition at <mach/mux.h> file */: H+ E% h; ^2 j, p# \$ `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. F, M) \" }2 W. L  l. q5 g' x8 Y
        -1, [2 P7 \1 n/ e: W7 X
};
" p3 |# o+ j8 G# h6 H1 \: m$ |; |: i+ ?2 \7 @
static struct gpio_led da850_evm_tl_leds[] = {9 [4 D" T( |( j6 W0 _
        {
+ f3 p, q5 C7 S! P9 d                .active_low = 0,; z$ Y) ]! g0 ^# p
                .gpio = DA850_USER_LED0,
7 Z( Q9 W& q* P3 T1 `                .name = "user_led0",! M1 B! _8 e& x( U% T
                .default_trigger = "default-on",1 v+ k6 z0 U  d5 S  d3 \
        },
5 a: _0 S0 ]4 o( z, r* Z3 X8 r        {
: z( C) C4 K# f                .active_low = 0,
/ P* Z# ?9 E4 e; }. A8 q4 Y- Q                .gpio = DA850_USER_LED1,
3 r  J* O$ F4 Y8 d+ I+ {6 u                .name = "user_led1",
0 `) C+ q) \6 E8 k. f/ i                .default_trigger = "default-on",; q! C* W' g/ B/ }
        },3 x& o! }1 W% R7 g. x) t
        {) `4 O* t% h5 P( R+ X+ f2 A
                .active_low = 0,2 h7 V! D, @3 d) r. s
                .gpio = DA850_USER_LED2,
; y$ f- [5 A2 `0 O3 g0 e& ]                .name = "user_led2",
, Y8 @. C4 \( O0 |) i+ @$ a                .default_trigger = "default-on",4 W/ e+ R6 q8 I
        },
  u$ B& |: U' w1 N        {
+ s3 ?8 o7 P/ G  |% ~                .active_low = 0,
- @  R' n5 U5 l+ ]+ U3 S) [! m5 k                .gpio = DA850_USER_LED3,
6 B! v: j* V: k; H, d                .name = "user_led3",
* ]" w2 \% U; M                .default_trigger = "default-on",- f( |3 L1 S2 M. i# z. R1 V
        },+ H' [/ \( ~6 R6 k# L; k2 G
};: A) f5 ?* r( N% B0 \1 Z# V4 k

, |' z( I. M8 K0 P: W6 u8 F0 Nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) Z" _( q& }5 C5 m- X" x        .leds = da850_evm_tl_leds,# z( [, O3 Q" |" D5 i! q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: h' o' {( I1 p1 c7 C3 F- M7 I
};
  J- G: _1 v% \/ ~$ Z
: h0 T+ _) o( q* ]+ Z4 Jstatic void led_dev_release(struct device *dev)% ?9 q- d$ r3 T( n) I9 g) `3 X- y
{, E9 ]4 H* q2 D4 i  j
};$ n# B$ H1 _( U4 f+ l  I
* }  ^, O& r5 }- B" H% @
static struct platform_device da850_evm_tl_leds_device = {1 D. o% \* M' J1 y% Z
        .name                = "leds-gpio",
0 h" Q9 O& W3 ]3 l        .id                = 1,# `" g/ Z3 Y0 I. ?
        .dev = {$ B( x% H# }. ]$ q( i- U
                .platform_data = &da850_evm_tl_leds_pdata,' b& N. l6 ?+ v* C3 {" k
                .release = led_dev_release,# ]' S; v2 ~/ O/ ]5 h! B& L: ?
        }
2 M/ |. m+ b$ Z4 B$ _9 e! M: S& s};- f! E# A& m% s9 V
3 G& M6 i- H' L' @' S7 W
static int __init led_platform_init(void)% O& h% K) }; ^7 d+ o1 ^
{
+ M) F+ M, u; m; U+ u" T4 ~        int ret;
3 g: S$ C" f! J# b  C4 J#if 0
* ^  V' t5 j, ^( w        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. R5 ]/ a% B  n* e% ~        if (ret)7 k& r* M; G- ?" W9 Q% i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
* q  v. m7 H* S$ m/ _2 m4 N                                "%d\n", ret);
; v$ h  |6 r/ S$ T3 C7 ]/ [  u#endif
) d+ I' d/ t9 L  ^2 c( C7 P( M        ret = platform_device_register(&da850_evm_tl_leds_device);+ i* \0 C$ E( [3 n& {% Z
        if (ret)
: f8 ]# L1 \2 j1 T+ I' `                pr_warning("Could not register som GPIO expander LEDS");$ n( r! {: H2 w: y1 g0 \
        else
; w" S# k! O$ U  J# l+ F                printk(KERN_INFO "LED register sucessful!\n");/ C: D8 o+ z5 z( Q% k" y

4 _4 b1 w1 @3 P: a- \) h$ }1 l        return ret;
  M& `7 k2 p# E8 B3 J. p}4 v: k- P1 }9 n- R6 U/ l( u7 I. ]6 A

6 P" `8 W2 T1 z" jstatic void __exit led_platform_exit(void)% g) a7 ]5 @& U4 N3 z# y
{
6 l. s: l0 S7 [4 W; S* g( C! c        platform_device_unregister(&da850_evm_tl_leds_device);
, h" Y' v& H( {# f" f& Z; R8 w! _, b6 A2 p, R2 w
        printk(KERN_INFO "LED unregister!\n");4 p7 s9 i. y4 @& {  `2 D; R2 b. }' O7 E
}5 e3 `- t* U5 k' z
$ D. J, A# ]: t0 ], A. x. w) L% d) m
module_init(led_platform_init);
7 h6 ?( J& Y. |* b0 _+ C+ g. Cmodule_exit(led_platform_exit);
: e9 k2 s. e2 W6 Z5 [: D3 F7 {5 z& J, O, g6 P
MODULE_DESCRIPTION("Led platform driver");
. W8 U5 a8 X. r8 p* iMODULE_AUTHOR("Tronlong");( N) a( w# o( d: o. [1 _
MODULE_LICENSE("GPL");
- k7 u3 J# Q2 q, j9 D- E" G$ W- M; J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-24 01:35 , Processed in 0.038475 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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