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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 B: U, l% {) y  u: V2 i- T
#include <linux/init.h>
3 P, d% ?# L2 J$ R  k9 J! g% M0 I#include <linux/module.h>
: d! x( r% L7 k! r+ z! B. M#include <linux/kernel.h>0 M" K* @8 ?( H
#include <linux/types.h>
1 ^) M9 q; g6 v2 j* s; z#include <linux/gpio.h>) p5 z# e' N) e9 c, {' H% x( u; W% C
#include <linux/leds.h>  h+ y' ~6 G' D5 [# g
#include <linux/platform_device.h>1 c9 [+ V. B* n  A

: q2 ]0 O  b' u' E# W9 H#include <asm/mach-types.h>6 Z& j2 J! s+ E
#include <asm/mach/arch.h>
# P! n0 F1 `/ b; t' C#include <mach/da8xx.h>! Y& y' m3 f3 ^, B
#include <mach/mux.h>
4 G* \, F. t2 D" `& o! A2 O9 Y! Z3 w/ j( m& \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* C7 x' m& r* K! C7 A" D
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): e- g6 u- t4 I, _+ F; e
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 S5 R9 ^- g5 ?3 }1 O) `1 I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: v* x0 Q0 B' L* P: m" v
. r- I+ x! Z4 p! z" y( b) s& _/* assign the tl som board LED-GPIOs*/
) Q& \" q  C$ P7 `static const short da850_evm_tl_user_led_pins[] = {" c5 y0 [" b4 Q; g  c  M0 t6 q
        /* These pins are definition at <mach/mux.h> file */8 h/ L) T6 d& F0 @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
$ U; ]; h3 R2 f3 [" N        -1( a5 j  u4 B% ?, r9 R& Y
};
: J/ ?% U0 W3 n: n/ w, D$ m; n2 V- v5 q8 y3 |
static struct gpio_led da850_evm_tl_leds[] = {3 x1 Y, u- g6 e) l% d
        {( f& h% Y% l& L' k8 X! D) u
                .active_low = 0,/ V, T2 a. @& l% V1 e, }+ k
                .gpio = DA850_USER_LED0,3 \5 ~" U" C+ a% j* h8 b# [
                .name = "user_led0",: l# \* T! K1 J; g3 x& Z" U& t
                .default_trigger = "default-on",& I" x4 P6 O2 c, U& }/ |0 I
        },
) _) x, R0 x- k/ O        {
2 ]. v0 D7 {8 T/ {. d- Z                .active_low = 0,
1 L, t, Y# g! g; f+ b                .gpio = DA850_USER_LED1,
: \" p1 Q  M2 M. P6 ~  m, ]  O  q                .name = "user_led1",
2 a2 d0 o5 F& }% l" V7 G                .default_trigger = "default-on",
2 }' V- A8 G9 B5 w( h& P        },
1 }5 Q1 f6 G: _        {$ R% K' x7 `4 Y: ~2 ~
                .active_low = 0,
" }- r9 f' a% t4 d" u  e0 e                .gpio = DA850_USER_LED2,
( z, ?0 T- e, }6 P$ J5 ^- z6 s                .name = "user_led2",
1 l3 J# l6 E0 i# D                .default_trigger = "default-on",
) e0 d' V& d1 }  N        },- C" i( j) u' q
        {
/ t+ U: k! k8 W( E9 `' s                .active_low = 0,0 M: i. x9 C! g* ?/ Q8 g
                .gpio = DA850_USER_LED3,  j- i& }; z) Z& _+ L( M2 k# h
                .name = "user_led3",
/ X: F( p- K/ v5 Q9 n                .default_trigger = "default-on",) r2 \  P! r- c( M
        },
' U! Q, k+ P* e};
5 {2 Y! F+ S4 Z  Y: c
/ U' z# i& x3 p) w9 _) c% pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 l7 G3 z# K$ D) \& o        .leds = da850_evm_tl_leds,4 F$ U2 H# ?# \' O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, V+ z8 ?8 j$ d& b" o; X* o  t};
9 f( y4 s% C, B; w, [
) U( {5 n7 F+ h; E* G: cstatic void led_dev_release(struct device *dev)
+ S* O1 {0 i" o! s0 o& L  g{
4 r8 S& k! f) h- C};
5 ^" \; R( s$ X4 q, ~5 a2 j+ `( l$ d; X; y
static struct platform_device da850_evm_tl_leds_device = {" q7 f6 N/ C& i" ~
        .name                = "leds-gpio"," @5 U+ j/ [0 d3 e$ ?
        .id                = 1,
7 |: b0 _* O2 r, f/ }        .dev = {
$ c' e4 Y) S: {1 Y: s7 N7 V& A                .platform_data = &da850_evm_tl_leds_pdata,
4 {- Y$ D: p- Y$ x" e' N                .release = led_dev_release,) a6 q+ D7 P- f) H# B& J" r
        }
3 ^) |9 r' A( y6 Q3 P; C2 c};5 c; ?" v/ q% j' F
" @: G1 B% e4 t# r( D! H
static int __init led_platform_init(void)
( [2 F3 M2 f/ J; }{7 X* n" j& d' P6 D* A2 ~+ i
        int ret;
9 `8 k7 ~* Z, z0 e2 z#if 0/ O+ j" t* S' F+ N9 D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 v0 Q% N/ g  q8 w5 E        if (ret)
" j) L- j3 L& U% A+ O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# J5 B( [- e/ k7 P/ m/ O1 D
                                "%d\n", ret);4 n: \! F1 f. A) Y3 G+ }
#endif( W2 v3 R- E- d$ T! {
        ret = platform_device_register(&da850_evm_tl_leds_device);
" b- @3 E* @  V/ N# z        if (ret)
) y( R1 x3 W( ]; W3 \! i( J                pr_warning("Could not register som GPIO expander LEDS");
, ~* Y! a5 j6 y0 u. C        else. o4 ]: r/ x0 c& e9 m; `! y: L
                printk(KERN_INFO "LED register sucessful!\n");* R3 Q5 z  [4 z+ c0 I7 Y7 e! b  z( w

5 x% _, N( |0 @# M        return ret;; S# T3 j/ b# U" j( ~
}
( N7 T6 t. r; y  |2 s* Z
7 b! S; S1 M8 s* \0 xstatic void __exit led_platform_exit(void)4 s7 Z7 K$ n7 ]2 g. p+ I" U6 V% z
{
$ p1 o' K# y  E1 E! T) ~        platform_device_unregister(&da850_evm_tl_leds_device);* J& N4 ^/ K1 Y; W6 C2 Q

5 S" W0 Q8 Q8 T2 I        printk(KERN_INFO "LED unregister!\n");/ l- x4 r. v9 {8 F2 x
}
' p; a7 B5 X! G8 J9 D
/ H7 Q6 @5 ]+ K9 |( K* Z5 l4 Dmodule_init(led_platform_init);9 G0 y0 H$ d1 Q" v+ F
module_exit(led_platform_exit);/ A: ?9 U4 X- H# B8 y! J5 U% A

8 Z( |8 R9 W, x6 K% X( xMODULE_DESCRIPTION("Led platform driver");5 n: i; ~/ {0 @: [$ e& P
MODULE_AUTHOR("Tronlong");  p( p6 E- y- a4 q7 h
MODULE_LICENSE("GPL");. T: u. {; Q7 Q9 V

+ n0 W! G0 Q6 ?, y6 r5 L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-20 11:39 , Processed in 0.040208 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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