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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ A6 [3 r' _" I5 z5 u#include <linux/init.h>, D* v+ I7 a5 ~! P  a: U8 b& a/ t
#include <linux/module.h>) p$ G/ F( h! t) `6 ]
#include <linux/kernel.h>6 E+ v' P- A, \+ N/ z
#include <linux/types.h>* H- M& H2 H, n
#include <linux/gpio.h>* l# W: F5 m) p6 H# t8 Z2 e# s
#include <linux/leds.h>
5 C  b: x* ?6 Y, m#include <linux/platform_device.h>
, c2 C6 F5 W; Q: V! u. b" U7 b0 m* }$ j' x; ~! a; o
#include <asm/mach-types.h>+ D! G; P" l3 v* o
#include <asm/mach/arch.h>
! b: u( X7 P' V#include <mach/da8xx.h>* _0 D7 b) y7 }. B( D0 c" e" @
#include <mach/mux.h>
) o# l2 w+ n3 ]% A7 y: m/ ~& ^& v5 I1 s! b2 ?
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* t& O8 Z  E, T5 s
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) c0 J; e! y3 G
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  T" d) d- ^- J! F, a* ]
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): b6 Y$ D1 B( |  B
! f2 w6 ^8 e6 Z6 y8 r
/* assign the tl som board LED-GPIOs*/
8 i. i/ U6 @( f" u( O1 L9 Vstatic const short da850_evm_tl_user_led_pins[] = {8 G6 S! o  M$ L, K
        /* These pins are definition at <mach/mux.h> file */4 k& N( }9 o: p, _* |; |4 _& b& l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 B% e, |! Y  Y. v4 u, r# X        -1
& _- `! a" E, Y};
4 X" B& F% p' S/ ~: D# D  ^: a4 y9 b* L: r
static struct gpio_led da850_evm_tl_leds[] = {1 E  v6 U) |' S: t: l% }
        {3 A* q8 e( D  k! @+ u. L+ b) d% ]
                .active_low = 0,
4 H6 z; p' d( r" g3 d" N- R6 w                .gpio = DA850_USER_LED0,! T1 M9 s6 L: _
                .name = "user_led0",1 R" P$ H+ a+ Y  \. i( M
                .default_trigger = "default-on",
2 H( I5 i% j+ j7 o6 G; S( T# M* W        },
  m* v& p; ~* b2 r$ Q. D  c        {+ I! h$ H$ f$ Q* p3 D
                .active_low = 0,
; [$ X# m7 Y9 u1 k- }6 Q                .gpio = DA850_USER_LED1,& e" H/ Z) O% c
                .name = "user_led1",' n. G1 e6 p9 H' \6 B8 t# f/ [# J
                .default_trigger = "default-on",( _+ G& f! h; p' \- O1 a; O
        },
6 p3 `/ g! G+ `0 I: D* T. g        {
  @: n' B2 e8 U3 D+ K                .active_low = 0,& O. m0 l- @& n  a7 Q
                .gpio = DA850_USER_LED2,# t5 |. @+ x4 q+ D. C
                .name = "user_led2",
$ m0 I* J! s5 V- Q9 b( K% u9 K                .default_trigger = "default-on",- G  l  d, V. h' K- ^
        },
. s! e1 |$ U- ^( ^: J6 n        {6 q- l! D" z9 z
                .active_low = 0,) z4 C! \4 t5 n5 w5 b& t3 c' G4 H
                .gpio = DA850_USER_LED3,
! _* i' i3 V) k" G- ^+ E                .name = "user_led3",
+ v  j; z  `) N( ~7 V                .default_trigger = "default-on",
. I7 L; ^( y3 r/ k        },
/ p* A: c6 h6 v};
3 d$ _! m+ d2 K/ D6 C* E( p9 s* p& t7 q$ k, K$ h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
1 l4 V. _1 k  ]% P$ O/ `: w& f        .leds = da850_evm_tl_leds,
, ~8 s" V% H4 ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
  Q% y& j- j( ?: ~$ V};
& T# {: m# e/ P+ y% k9 C( @  k1 z6 A6 o4 j; v& m, W
static void led_dev_release(struct device *dev); ]& E0 w4 F. V- m" S( x2 ?
{
! X! l$ m' [3 W7 p1 p  D};3 \0 N4 N1 a; r7 g% j
1 D# r$ o/ X$ z5 d9 q  U. E
static struct platform_device da850_evm_tl_leds_device = {
: t0 \  b) d' a6 A        .name                = "leds-gpio",
# q- u9 F. r0 a3 N1 K$ f9 R        .id                = 1,' i) s; g; H1 g" ^. x8 X
        .dev = {5 M+ ]& L  k& G! ^' X
                .platform_data = &da850_evm_tl_leds_pdata,
" F+ f* L" e& r9 W                .release = led_dev_release,
) H2 r% L/ q6 ~        }* d- r; E# k/ m6 X! U% z
};
; G( U1 C8 U& e, R( Q8 m* C4 K# @+ W! ^  w: F$ `( i( B/ X
static int __init led_platform_init(void)
- g/ @; @: B* f8 z0 D{
+ f8 {0 N. ^8 [0 z  E2 v        int ret;
! c* I8 I* X- F  `#if 0. W6 c; y8 u2 v) w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 C" i# i; o' A) }        if (ret)
+ _% e6 q& w- C# v1 u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 f3 R' X% r8 u- f! U8 L
                                "%d\n", ret);  Y3 s! l! E6 X
#endif
' u7 I4 O5 W9 J        ret = platform_device_register(&da850_evm_tl_leds_device);+ O; Y) p- V9 n2 n
        if (ret)
8 H; ]; r9 v8 W% A: |) q                pr_warning("Could not register som GPIO expander LEDS");
9 {$ Q* j% N, [, s1 J6 U: h        else; t; }5 ^+ H! z4 u) r+ ]. @
                printk(KERN_INFO "LED register sucessful!\n");; J4 F+ U3 I8 z' n7 g

/ S/ l1 r4 `! E0 n- ]        return ret;
2 ^; w" K0 o! V5 D4 E}
0 R0 C4 \: E, G0 n' Y
/ ?' f2 m- G5 @; y2 x) G) Lstatic void __exit led_platform_exit(void)6 Z; t6 E# v5 k1 U; _
{( d" A# P( S4 u) G
        platform_device_unregister(&da850_evm_tl_leds_device);
" y8 g0 n; f9 v: G. j6 `) K8 ~
  `  q9 n3 f0 q- T2 ]$ p        printk(KERN_INFO "LED unregister!\n");6 l3 C3 M# Q$ J
}* ?; A0 p; {7 f3 O7 y

& U7 B5 P4 n: \* W+ O$ D; E3 Pmodule_init(led_platform_init);
# G2 t- C$ }) s* S8 \module_exit(led_platform_exit);
! C1 X6 q; H3 ^8 ]! a
  n  g/ C* J, o8 K& \& _9 ~( W. aMODULE_DESCRIPTION("Led platform driver");
- B7 C5 f( D2 H/ b, A# {! l# J4 G! pMODULE_AUTHOR("Tronlong");
2 J1 m$ A. `$ j8 C2 Z/ h' G$ G3 |MODULE_LICENSE("GPL");
; ~6 s: N+ Z. C- S6 c2 t7 V
+ I  x; j; v- m% t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-9-11 03:25 , Processed in 0.047716 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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