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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' X7 @6 P0 j# i9 b; p0 a) B- ?
#include <linux/init.h>
+ K) k, m; t% ?$ H' y5 t1 L) L# A#include <linux/module.h>
9 T7 T$ A1 c2 z% e2 W5 z5 q, ^#include <linux/kernel.h>
4 Q' |0 ?, O3 \+ v' j#include <linux/types.h>3 \1 y% ]; r$ H: o" `
#include <linux/gpio.h>2 [+ m/ {, c) E1 n' C' X7 {. N) A
#include <linux/leds.h>! W* W" V( ~* O
#include <linux/platform_device.h>
$ H2 W- Q7 e7 v! h( J' P5 Q& u, x5 r( f/ w$ \6 z, R/ K
#include <asm/mach-types.h>
( x$ @- a# W8 ^- W#include <asm/mach/arch.h>
/ J( e/ T, |) e, {, k#include <mach/da8xx.h>. i; z' X( D! M9 ~  N
#include <mach/mux.h>
# b; Q& K9 @8 k
/ N4 U' I3 r! E) R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)8 T* o' d3 z0 P9 o0 |  K' Z! U+ u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: d% _. Y- B: Q+ v  N& F6 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 i$ E6 i8 n  U# W
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 [6 C! A8 n; F" U: o% l
4 u" F4 i# C3 o! b) a3 K! J
/* assign the tl som board LED-GPIOs*/; ?# ^# Q$ t7 r) S. J" i) _' L
static const short da850_evm_tl_user_led_pins[] = {! B! t: b! s# y( F3 ?6 O# g0 S* F$ L
        /* These pins are definition at <mach/mux.h> file */
, x$ h+ M) `9 `2 m( M* G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 g/ D8 ?# ], O9 X9 U        -1
+ c( d) l3 a0 _. J9 g};) B. O$ i& I& H/ c0 c+ D
- @% Y/ l  ~& S7 G; [: m
static struct gpio_led da850_evm_tl_leds[] = {* s5 h/ i8 {8 B0 I) W6 C
        {1 V7 I8 ~6 j( W" q, o% J
                .active_low = 0,  B+ n: l% a$ \% w
                .gpio = DA850_USER_LED0,
7 F( o* z' @9 ]( ~8 R- f/ j& t                .name = "user_led0",- Y/ J# }- x# X' s  j, p( L' Q) J
                .default_trigger = "default-on",4 a9 ]. T/ a3 j" x
        },
& N: I( d& n* j' q; L        {9 J& B: n+ o- Z! _+ U! |5 X
                .active_low = 0,2 ?# m+ u3 i9 t9 U1 `+ z2 h
                .gpio = DA850_USER_LED1,
' T$ D0 p9 Y% f& a: C) G2 X                .name = "user_led1"," J7 u+ [! e, V" U; n
                .default_trigger = "default-on",
7 t) F( R) Z& {3 K        },
, r8 _: o* [) l% ^5 S3 E        {
: {+ b* z+ _) v! t& ~0 ^( e                .active_low = 0,
; G, c, c9 L+ `7 l* n6 A; Y- B                .gpio = DA850_USER_LED2," Y) {) V$ h; v% p# E. X$ s* Y
                .name = "user_led2",/ h/ r8 j% \! {4 P- A. t% ]( N
                .default_trigger = "default-on",& g$ |' B, M' p; A
        },2 V( e7 r7 T& n" j) D& v$ X2 u
        {; d$ v/ z9 {- g4 M7 ?2 Y, Q9 i
                .active_low = 0,& u9 U9 v3 `- T& @  `1 a
                .gpio = DA850_USER_LED3,& L$ W3 v3 \/ E) d, F9 S4 l
                .name = "user_led3",
* N$ W# N( i: q; l' I7 P0 z& E                .default_trigger = "default-on",
- h% d  \+ K+ T9 ]        },
0 E) y. {" a  q: w1 M" L8 }' U};
7 p% k9 j8 x7 {% K* l" H2 g" ?) l. |- y/ Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% q4 M1 V* `( ~. A5 `# L
        .leds = da850_evm_tl_leds,1 _7 z- X' R- I, d  R
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 C3 I4 @9 i5 |) _6 |
};
' V9 r9 J/ v( n6 G+ N( k, w. Z
0 G1 T5 d2 B# j! C" jstatic void led_dev_release(struct device *dev)
+ x! W+ |: u# h; b5 p" F& J; w{
1 `! A" m4 c$ B4 E* C};
# d. T3 q( b$ |' @( J1 J
) u" w! b+ N$ Ostatic struct platform_device da850_evm_tl_leds_device = {- x7 l. w4 D- ?. s9 Q
        .name                = "leds-gpio",3 y- V* u9 g, o' M
        .id                = 1,
' M8 A5 n9 V- e( X, Z/ ~        .dev = {0 |. R6 s, J0 c6 \  T! X
                .platform_data = &da850_evm_tl_leds_pdata,+ ?* L, C7 t# B2 n, \9 w* `3 n! p
                .release = led_dev_release,# ]$ d- W7 H" @2 p, f
        }
1 m' I, c1 q2 z% O, c" T% m};
! v0 B" ^6 V, U( {6 ~
3 [: E. I, P' g. V4 \2 L* ~static int __init led_platform_init(void)
7 [8 z5 M4 Z+ }- D3 @/ I0 I{! Y3 ~* T( e6 T6 M3 g$ m7 m1 z* p
        int ret;
6 X4 W) a. w& x% A6 M1 G#if 0
! c  r7 k( R5 m/ q' C' e        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);: r' E/ l* Y+ r; p3 w$ k
        if (ret), d$ C+ P6 t- r7 c' n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- [2 j2 P% z' ^
                                "%d\n", ret);
) N- Q2 [# x) J$ }8 L#endif, e) t1 }& M5 S% ~  h) R
        ret = platform_device_register(&da850_evm_tl_leds_device);% [4 r1 R9 q3 B+ [9 Y5 O$ u
        if (ret)/ v' u- ]. p- J( L9 [7 Q
                pr_warning("Could not register som GPIO expander LEDS");
; o, h9 A, Q* |* c+ ?" S* [) o* h        else
' o3 x  }  K/ r5 a! l: d                printk(KERN_INFO "LED register sucessful!\n");
% r! h) I$ f- m! ~) l! u5 n& A0 J. g! v+ x2 s0 j
        return ret;0 ~) J7 v9 F  l5 M8 S
}' C# s* U0 \; f+ ~! J& S  o. R  ?* ]
5 B' |9 N8 ]/ @! ?  r, Z
static void __exit led_platform_exit(void)( P) ]' I! y/ F! k
{
0 ~/ C  }. f& f3 X9 |        platform_device_unregister(&da850_evm_tl_leds_device);8 I6 S2 Q% n2 A, t9 d
" \; n. g& Q1 D$ h
        printk(KERN_INFO "LED unregister!\n");% U  K4 P. g6 R
}4 C0 ]8 z7 x! {" b) c4 f
8 Q& V9 A* c' c5 h+ i, z
module_init(led_platform_init);
/ ]3 S4 ?  z+ T4 j- s. P& h- [3 Umodule_exit(led_platform_exit);
+ k: A0 ^! E1 u6 r2 E$ `6 f# h8 U
MODULE_DESCRIPTION("Led platform driver");
+ r: F$ z0 L4 WMODULE_AUTHOR("Tronlong");) W; G& C8 D. B
MODULE_LICENSE("GPL");
6 K0 C! _' B' k& d6 U4 H, X# H
( e. w7 W1 x2 F% M8 d+ O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 00:08 , Processed in 0.039768 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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