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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 m% p. l' E5 j4 ^% x- |
#include <linux/init.h>
+ }- p: n7 S! ^1 A2 \( Y#include <linux/module.h>* g" W: d3 z" S" b$ y# y
#include <linux/kernel.h>* _8 b. B& D% m- t( r" }# Y
#include <linux/types.h>
  R7 w* S4 X0 R& n: j& H#include <linux/gpio.h>
# G  m: A2 s- D+ N" C: f0 v% y* e1 a#include <linux/leds.h>. C" W& o+ o8 ^: N. l3 X& j
#include <linux/platform_device.h>3 B( X/ w4 n' J. ~* L+ z
$ V" d# z6 q0 d0 E& p
#include <asm/mach-types.h>9 |* a# o; e, T$ d9 `. |* R
#include <asm/mach/arch.h>
$ H: E8 s& A) |6 X- s#include <mach/da8xx.h>! V. E; Q, D2 ~* ]0 _% u
#include <mach/mux.h>! [% c* N. G. ^( f! @* H2 j
# A8 F# C) R- U+ g4 G$ z5 p0 N# y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); E/ g. B# b& V
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 n1 K, S; D2 ?+ b+ Q) E#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& H0 i# Q7 {( T: f. e6 s8 }7 ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 t! Y1 l0 H% j9 I% }1 p5 K
, [! q9 G0 C  O9 T1 k
/* assign the tl som board LED-GPIOs*/
! b; a% B0 g- ^+ h, Rstatic const short da850_evm_tl_user_led_pins[] = {2 l* y! i. _) Q* H
        /* These pins are definition at <mach/mux.h> file */) ]+ O& J6 q) @: _( }$ o' H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  {  M2 ?2 d& O6 x
        -1
* k& G" ]2 y0 z% [8 v4 w7 `};2 {: a# A' i- x( H( L; t9 H
0 ]0 C* a2 K6 w" p0 N( Z
static struct gpio_led da850_evm_tl_leds[] = {
3 }  K" \" C$ H2 }        {8 i. w& r( d1 K0 V0 a8 z
                .active_low = 0,+ Z- N3 F; v1 j
                .gpio = DA850_USER_LED0,
0 i, d! S4 s. w- V# D# Y; d                .name = "user_led0",, S0 q, t4 N, O3 a5 y9 R4 U
                .default_trigger = "default-on",
0 W! e9 Z$ }. Z( U        },( K) X0 k# F, p, {- u. o; j
        {
! [2 Z) t+ n5 {( F                .active_low = 0,
+ m" B" X$ `* P. f5 j- h( F  a                .gpio = DA850_USER_LED1,' W; n( a9 G; o5 i8 s) A! U
                .name = "user_led1",6 U8 E7 _5 S* T
                .default_trigger = "default-on",
( r/ |3 ?9 N; ?6 v' B; R" X+ ^        },6 x6 z5 S( Q0 j9 r8 K9 q  h
        {
" i6 x; K, E; M4 x, J: \$ c                .active_low = 0,
* O5 d* p6 R% B6 J/ \% l; d                .gpio = DA850_USER_LED2,
9 E9 H+ T. H# Z& D$ k/ q( g                .name = "user_led2",, U8 x+ q: |5 V# \4 g. p/ ]
                .default_trigger = "default-on",; Q& w* m6 ?2 c: q+ ^: R
        },
# e0 L; O% C! Y3 f$ R  t0 K        {6 x: @9 Y9 \* i3 n
                .active_low = 0,3 D* \. U; I/ s& |- |, Z$ D
                .gpio = DA850_USER_LED3,' B+ M# H! N8 O$ V% ?! r
                .name = "user_led3",+ m! ^9 X! o/ k% y
                .default_trigger = "default-on",
3 n& d& W- {+ o" `        },+ Y5 V1 C6 @- d6 f  M
};
9 L/ R* g) C2 r% V4 p( i
( C: a3 E- D+ E& mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 A0 S  `' j* c5 ~" S
        .leds = da850_evm_tl_leds,6 n& ]6 \( m8 `7 {( z1 U/ [0 T
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& p5 r: ~% {8 l# g
};0 s0 ?! _  p. Q- L" l& \. _
2 D2 i. H1 s* w" x' `' H, _$ f; S7 C9 F
static void led_dev_release(struct device *dev)1 j& Q* P( B. v/ C: b
{
3 s% d6 e# s2 U. B, ~: K};
4 o- A& S5 ?8 s: g% L, M* d
$ a* `4 L4 X) Tstatic struct platform_device da850_evm_tl_leds_device = {
$ I! H( x" O; o$ a9 a* @( c1 l        .name                = "leds-gpio",, _! b$ B2 F6 `
        .id                = 1,
% o& b' f+ G/ a; w        .dev = {  f7 Q1 Z8 M! j8 F' q
                .platform_data = &da850_evm_tl_leds_pdata,7 v  i' L4 ?: {& }. q+ f
                .release = led_dev_release,
2 Q  D& C8 `, n, Q4 p7 {+ v        }
- n* A% R8 L1 D7 Y; g};  z* J9 L) m6 u* \  G& q6 v8 c

2 Q9 I" ]8 P& X* sstatic int __init led_platform_init(void)( ^2 K' h3 Z9 ?5 {9 u8 L: y0 Y4 Y
{
( q. ]/ Z( Y3 Z% d5 [& O& u        int ret;
" m' K% X9 |3 K1 ?#if 0; u9 i8 |" Q5 V
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ U9 d  W0 D. q        if (ret)
/ Z) p/ m% u" O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; G: y& ~/ s9 ~2 c' t) y: C
                                "%d\n", ret);7 z7 b* s- @8 `  w4 ?7 t% K) H
#endif6 ?6 \& f9 j  [4 k0 E3 E& W
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 I4 G) y5 f% ~3 @        if (ret)
* _& T7 d8 }3 H2 i& E                pr_warning("Could not register som GPIO expander LEDS");4 C% S- K; {! ~% h+ w
        else
3 u! ~& Z$ O- n# ]8 e; h                printk(KERN_INFO "LED register sucessful!\n");
& Q* k! k) f# Z: s$ e
4 {+ F( E, e/ J7 i/ p" |& q        return ret;
$ i6 x( t1 v2 T" }; c% P}
' [1 @2 x% {: }/ y4 O6 l
+ Q5 j" ~2 ?& V( S) J) i2 g( p( ]static void __exit led_platform_exit(void)
. ?, @5 k( k) z{
* J% [/ T  N4 y7 `6 M' M7 h        platform_device_unregister(&da850_evm_tl_leds_device);
% c* H0 b, t5 r* p6 B$ m. c7 Y
( H( c6 O4 V3 I8 s' J        printk(KERN_INFO "LED unregister!\n");4 y1 j( G  f7 P9 ^, x, B; H
}
. X0 K$ i8 I/ v3 D' o1 a$ ?  Q( v5 [. D
module_init(led_platform_init);: U8 `1 O( {& }  t
module_exit(led_platform_exit);
0 @* o. z! _/ }$ z6 R- r4 I* v8 J* o3 I3 T
MODULE_DESCRIPTION("Led platform driver");
+ U' q$ p! }) s$ ~9 n5 L% RMODULE_AUTHOR("Tronlong");
( h3 y: ?! }0 K# i+ O: o/ [8 n8 s. E( o6 TMODULE_LICENSE("GPL");) O% |! N+ h% S

4 P4 |/ W2 x/ [2 k7 s2 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-10-12 06:46 , Processed in 0.040912 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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