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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ O$ ~* m. |/ Q8 X- c$ F3 P9 S) ?#include <linux/init.h>$ [" i) ]  D% ]
#include <linux/module.h># f7 U% \* Y8 W7 d' Z
#include <linux/kernel.h>
( y: Q+ b7 T+ R/ A# {1 \9 r#include <linux/types.h>
% |& C2 ^* R! T  l* O9 _. @" _% }#include <linux/gpio.h>& \7 o5 b( I" `. s1 y  b9 {4 r
#include <linux/leds.h>7 H, d0 Z6 a* ~' ?  c+ }: m
#include <linux/platform_device.h>
3 |1 {3 M" ~5 X+ W6 q) s! j* f0 P: b, q
#include <asm/mach-types.h>) K* }0 D0 L3 P& L  D; C# |5 Z9 F
#include <asm/mach/arch.h>2 I3 V; E( C/ A7 _0 x# z
#include <mach/da8xx.h>
* L% E8 S" V( m, g#include <mach/mux.h>0 D  F6 F( M; W7 A/ Z

, u9 N- m  c1 D4 l) p/ t5 E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 @9 ?4 q  b! m8 i( \1 Q0 d1 W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' B( ~. x2 E* x#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ ]- i4 H( D4 \' U) S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)1 w; q  ?: A4 Q; N0 {
9 t/ ^, i  |3 ~% B
/* assign the tl som board LED-GPIOs*/
3 U) c( \* E% bstatic const short da850_evm_tl_user_led_pins[] = {  y; m7 y  ~4 `* k' F
        /* These pins are definition at <mach/mux.h> file */' X' m( y  [2 ~" p) b+ \0 }
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' y1 [- I: w# _
        -1
+ U3 T' |% n* C' `% Q9 L};+ O! l2 c; p/ K9 Q3 z! i& D" I
& \/ E! y0 u( X7 a( N
static struct gpio_led da850_evm_tl_leds[] = {' p! @5 |' W4 F$ F. q  b
        {+ x* v% `; }5 Q, E
                .active_low = 0,
9 \- s5 I, @1 r) E& _1 m0 F6 R                .gpio = DA850_USER_LED0,
7 j& ^% y" D7 Q( W: @8 B                .name = "user_led0",
) D+ r# l" Z, `& D' ^$ K/ m# K                .default_trigger = "default-on",8 S" i3 Z' m/ ]! S: t  V
        },
. i) h. E  n8 c6 f' F) q        {
" e5 N* j  x1 O' ]                .active_low = 0,
5 P* h2 w+ r; u1 O9 q1 w                .gpio = DA850_USER_LED1,
+ q, T' J# B5 u  d0 w8 K                .name = "user_led1",
& }) V' ~! l0 \, A( x                .default_trigger = "default-on",5 I8 k+ a1 R6 X, f7 u5 s. d
        },! }3 n' e6 X+ ]0 T. p5 Y: b3 K
        {
% h# `1 `4 W6 F* A( ]' F! q                .active_low = 0,  {( V9 N0 R9 W8 Y* ?8 H# _9 d
                .gpio = DA850_USER_LED2,
7 T% m5 Q5 H: V1 F" ?+ f: u                .name = "user_led2",! e0 j1 x  Z! S( n# B2 b/ ~
                .default_trigger = "default-on",
# h! g; X& O  F4 X- W        },1 p$ s4 Z1 r! y6 R6 I
        {
+ V2 g7 v; E# N                .active_low = 0,
5 D& b5 H  G$ q$ U" a9 I3 f3 Y5 ?                .gpio = DA850_USER_LED3,
$ j% [& R7 B' i- B) F                .name = "user_led3",
, J- g( Y" [+ R; e                .default_trigger = "default-on",) s9 v% s" y# w
        },- o# v8 |# ^' q. i
};" F/ M$ y* V! r! K+ `

* Y% q& U% L/ cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, d  e' ?( W3 u        .leds = da850_evm_tl_leds,
: X7 k* b9 x- w* d2 S        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 V5 `! y+ z$ o8 [1 T: q7 j};
( d  w7 a& Z. `  C6 b  i, `
8 e- A- s. D. u' \8 Gstatic void led_dev_release(struct device *dev)
' ~+ P( t! M2 J* M1 T! {" N{: [0 y7 ?7 v, e. @( R- D; L2 z
};( s* Q' G+ K7 `! p/ F, [
  z! W: F- V. j3 ?4 y; J- t  R
static struct platform_device da850_evm_tl_leds_device = {" B, Z' k* o+ F1 R. K5 L
        .name                = "leds-gpio",( f7 r7 r3 I% s4 h4 h1 b
        .id                = 1,
7 W4 a5 y: i3 q+ g) T4 d1 k" T        .dev = {' b0 _8 _8 c3 u. |2 C5 q
                .platform_data = &da850_evm_tl_leds_pdata,
( `$ l( s+ B% u, O                .release = led_dev_release,
/ a; C& c5 I" z+ e  |        }2 E, h' c, F4 i* B1 _8 R- @
};* Q1 l  H/ ~3 o7 v+ {

- {6 O7 V3 X- N/ J" v3 w7 estatic int __init led_platform_init(void)
6 \' T  p, e1 r{
; P, c" V! z6 c        int ret;% Z; u/ `' D, y5 u% {. w9 y
#if 01 @: q6 N; H  L8 F# @) t
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
/ R. V0 F# A) B        if (ret)
5 j$ F: P% y  U, ]+ A, V) p                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ b$ G) R+ i# U* W7 J6 p
                                "%d\n", ret);
* o1 W1 N6 E3 Q' D3 @#endif. V# V6 ~( M" [; q7 L! `
        ret = platform_device_register(&da850_evm_tl_leds_device);1 k( \5 u* K: _3 X9 j+ X
        if (ret)
  X  O: z  B$ v  L" w- Q                pr_warning("Could not register som GPIO expander LEDS");/ e& B2 D8 K/ D8 W: U$ D- E
        else, U+ E5 r! N5 M7 n
                printk(KERN_INFO "LED register sucessful!\n");! x6 }* [2 J. U3 d. A
1 w5 j9 f4 B* R
        return ret;
: w% x' l4 h: h% O. R$ L- W2 |0 l}
% d9 e8 P; B7 g/ q  p3 m9 [+ P7 U. J0 Y" `& n1 h7 n  V
static void __exit led_platform_exit(void)
- P7 @! g* k. E{
. q, a2 f+ L. ]& q% p+ K% w        platform_device_unregister(&da850_evm_tl_leds_device);+ C- ^. C, T; Q2 z/ W" h4 Y3 o

: u3 O* F0 Z$ e5 C2 g        printk(KERN_INFO "LED unregister!\n");: s; K6 J. O6 a1 w1 y; m
}
9 @! B; D$ W8 i3 g4 I8 ?
; p/ d( H/ Q  L+ c# h2 z: p( imodule_init(led_platform_init);8 }7 I: g" u* ^' w
module_exit(led_platform_exit);# l$ n/ m6 O) C' w

2 Z" N2 V( Y9 p8 FMODULE_DESCRIPTION("Led platform driver");
$ s( D) F7 N$ I! N9 ^MODULE_AUTHOR("Tronlong");
2 L2 X& s8 B: V8 G) o* XMODULE_LICENSE("GPL");
* w. @6 Q, c8 N3 e& h0 H7 `+ Y7 C" r7 i& q( [$ f7 ?' [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 19:33 , Processed in 0.038215 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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