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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。# X; q& J; k7 K1 O. i
#include <linux/init.h>+ |- \: k  W- U' q
#include <linux/module.h>
/ a: A0 W( y9 {7 L6 {7 n# Y#include <linux/kernel.h>
( p2 k3 R4 P0 y, K. h. q#include <linux/types.h>
2 d! \* F& n' H, P#include <linux/gpio.h>
& s) V+ Y( p7 U- ]. H5 _#include <linux/leds.h>7 k7 r; F: F' x  w: r( O- u. X7 S
#include <linux/platform_device.h>1 V/ R" ~7 p! ^
. ^/ M, h0 r6 x: Q% h
#include <asm/mach-types.h>
. D" N- R9 N7 ?% p) G" c* j/ N3 q#include <asm/mach/arch.h>
1 M( L* U; E: ?4 {; y: A/ e7 K#include <mach/da8xx.h>
7 [- B+ [3 }" o3 F0 r#include <mach/mux.h>
9 I0 u! A; w  X7 _# Y& a$ `# G: e" A) @1 _% G
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
4 ?+ K7 g% @/ F+ P4 Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' A! Z# g& u& F2 @( V2 }
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ m* h2 L: f; `/ M6 J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: R% r1 r0 j; j+ ]  ~& |! r/ j. M& i  H4 j  f6 {& {( |; A' B  h
/* assign the tl som board LED-GPIOs*/$ M0 Z3 ]7 q' r+ T& y2 d! L' v# g
static const short da850_evm_tl_user_led_pins[] = {6 R$ j7 t$ b8 y, s
        /* These pins are definition at <mach/mux.h> file */# i) N+ m) c; K" F, |5 H- W0 ^0 I; i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ G/ I% U  N: s- }& `
        -1
, g) l* m5 F9 {. c};
9 i: A9 G, \+ C7 g7 T
; _: q( c- h/ l6 Mstatic struct gpio_led da850_evm_tl_leds[] = {9 N+ J! M% O! y0 N3 O
        {
* E& L/ |& ]3 ~4 X/ T& ~2 T+ G, n) x                .active_low = 0,+ Y! _5 w" X& C4 `  `
                .gpio = DA850_USER_LED0,5 J4 N7 }& G2 q4 k" N$ S% f) ~
                .name = "user_led0",
$ h" j1 B: Q5 L" U! B                .default_trigger = "default-on",
: s7 m& a# Y0 L  D- i1 S0 |        },6 z# w* g8 Z! B% m' J
        {$ @) u( ^% v& \, a4 M0 H
                .active_low = 0,
5 Y$ [% _: r: x$ b  l                .gpio = DA850_USER_LED1,( P: v# Y5 G; R+ z8 h5 J
                .name = "user_led1",
7 o  A% b- ]0 o5 }2 V- T8 H! ]                .default_trigger = "default-on",
+ u$ t' t+ x5 k, R        },  [" e- O0 C5 O- D& l0 E$ A
        {( ?7 K  ~- B  b
                .active_low = 0,  L& \  Z/ A: s- c( ]& S
                .gpio = DA850_USER_LED2,
: E6 \: ^: \% q* F( U                .name = "user_led2",
4 M5 j8 V7 h0 o4 F* I, K                .default_trigger = "default-on",
1 b- {1 S' n8 n) ?! W        },! M1 E4 A- W2 _  a+ ^+ `
        {
" U: I0 W' m5 C; f+ m                .active_low = 0,
1 w( I8 `) A; ]& I' ]                .gpio = DA850_USER_LED3,
& Q, [0 P3 o# l$ H: n/ p4 J3 M                .name = "user_led3",
9 E3 l' ~8 ?. F% E4 O2 y0 N* B                .default_trigger = "default-on",! G8 x5 U+ {8 }# q/ d* R: m5 t
        },
- J. w% ^1 @3 \};9 u4 j$ A( C/ F$ _" x
1 q- |/ k+ i, N$ D- p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% J/ |3 |* V  \
        .leds = da850_evm_tl_leds,
6 J& Z7 e2 I& s+ `        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# t4 V0 e9 ]' E3 `1 Q7 n: D
};
' d( m9 N+ Z3 p( }5 O5 z: L3 \9 z( }+ H; {- f! z
static void led_dev_release(struct device *dev)
2 {5 a, `- ?! f{! W- k6 w& C8 j% U( B# h
};' P  E4 u+ b' l$ {4 F% V

* O7 [( a' A! {2 _; E7 jstatic struct platform_device da850_evm_tl_leds_device = {9 u9 E: V/ g% R4 C) q
        .name                = "leds-gpio",
5 S* u  l' W; t* `4 ]        .id                = 1,
! U' P7 c. v2 `$ q( j        .dev = {, p6 j# A) e9 o
                .platform_data = &da850_evm_tl_leds_pdata,
( {1 M' G) X% |( i( F                .release = led_dev_release,
( S, {6 s2 Z; i" B        }0 f; m- Q* W" u. l. e$ F9 l
};
; g+ E8 H* _( v" W% h  F8 i& W/ K
static int __init led_platform_init(void)
9 x5 E) z  c: P+ I! v4 H& p{
" w  a% e- k' c2 F& d) E% V. J        int ret;7 k, b  D) f1 T# j; B" z
#if 0
1 }1 b: d& Y6 ^' N/ O& x: y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) L- C* H% F3 N
        if (ret)" P% x( ]. ]* V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 F" L7 _# E9 h. d
                                "%d\n", ret);" B9 p3 r! O# ?$ E3 @4 x
#endif/ I* y0 t9 i! q, O: }& b
        ret = platform_device_register(&da850_evm_tl_leds_device);
. t$ s2 W* W5 T/ Q% H        if (ret)( W8 s% \/ j  A" Y: I  H/ _
                pr_warning("Could not register som GPIO expander LEDS");
; B/ x8 T3 y# g$ s; q$ O, q        else0 n7 S/ j, B0 v; Y9 I/ ?6 x6 w
                printk(KERN_INFO "LED register sucessful!\n");$ V0 J' v8 {7 }3 ^
6 y0 g8 |$ d4 R1 f. |9 F
        return ret;
* A, }2 K7 K( `}& J, ?; v4 T8 V, _& o3 f9 n

* ?) i, u) s/ v, _& L( g. x5 zstatic void __exit led_platform_exit(void): h4 z4 A: i& O0 h
{
0 K2 d; T9 r# n% Z        platform_device_unregister(&da850_evm_tl_leds_device);. l% V0 o3 n$ u4 T% ^' H+ ^

! _7 h5 v* h4 t        printk(KERN_INFO "LED unregister!\n");' z3 K( M. G4 O! J
}
9 J* o4 R) N  @3 k* `0 C" \2 W  \" B5 e) c5 b0 \
module_init(led_platform_init);
: j" a- O' E; ?! k8 hmodule_exit(led_platform_exit);- _' f: @5 K* G7 `& j

1 V) j/ N5 q* b. zMODULE_DESCRIPTION("Led platform driver");7 l/ V( d$ a- ^/ D
MODULE_AUTHOR("Tronlong");
1 l/ d3 [2 z* B7 V- CMODULE_LICENSE("GPL");
# T* U# v) g$ w6 a7 i$ @0 E& B, B) a, V; I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-11 22:04 , Processed in 0.037279 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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