程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 c0 }: G5 n! ?# F
#include <linux/init.h>" g/ h! _) q+ V0 O
#include <linux/module.h>
+ U, s! h% ]. \/ D' y* Z7 P#include <linux/kernel.h>* Y' ~8 q$ V) C2 S
#include <linux/types.h>/ j- [+ L; I; R8 }+ d4 k
#include <linux/gpio.h>; v5 y: ?* c9 z3 R1 n* u
#include <linux/leds.h>
' U! e; ^3 C# a6 x6 W' i( u2 X#include <linux/platform_device.h>' J, y' z# n: E" q- Z

& f/ K8 T* S+ r% |#include <asm/mach-types.h>
4 J5 ]1 n! [/ O% U3 ~8 V7 C8 ?#include <asm/mach/arch.h>
1 b9 X+ x; w0 P  x#include <mach/da8xx.h>  c3 s" k& C" A5 D$ Y
#include <mach/mux.h>0 p1 N0 t# B+ V* X
3 g" d' r* M# K( O
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" |0 q' K; G7 Y3 f5 H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 S4 V4 N: R' K" @
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 K# d$ O3 l4 v% M
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) ~6 G- \! F5 P4 P7 N: g. ]0 u, `/ D0 e3 \
/* assign the tl som board LED-GPIOs*/: h" E1 S; p9 R) p
static const short da850_evm_tl_user_led_pins[] = {
  Q; u  H& ^2 @* }        /* These pins are definition at <mach/mux.h> file *// ^7 |3 P# u* m2 Z' f% k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ s. q6 z6 ~/ z/ a0 c$ @
        -1
' |2 i  C  J  l( Q9 C3 ~8 K: w- F};8 t9 `+ H4 D0 X1 ^

0 B* `6 u( h" \8 S) p3 S& Kstatic struct gpio_led da850_evm_tl_leds[] = {
0 A; o0 R( U& ^! t+ v/ R0 V        {
& A7 k) O: _/ A# N; F                .active_low = 0,
' _, d  l& u2 E. w: d) k' I                .gpio = DA850_USER_LED0,2 A/ w5 q# S/ N) d* r. {3 i4 O
                .name = "user_led0",
2 k1 B, U, ^7 ^  i) D                .default_trigger = "default-on",
6 l& s  E) D5 k; o7 n        },
- Q# @; D! S6 {" b! A        {
( x3 h! J6 G* O2 H, _                .active_low = 0,8 s* x" ?, Y, ^) k1 w/ G0 P( w
                .gpio = DA850_USER_LED1,
9 }& Y3 b' k* w+ G5 [                .name = "user_led1",
/ ?+ P9 t/ E2 e4 c1 ]; I                .default_trigger = "default-on",
6 P* V5 c1 C# i6 d, A        },
) v9 Q" M0 {6 K: f! C1 @        {( w; G- {) I* i; K* t( n/ o
                .active_low = 0,9 Y* r9 Q( E& E! o4 Q
                .gpio = DA850_USER_LED2,1 v' r8 G  C0 M! v1 C
                .name = "user_led2",
1 d: C4 T: ~3 l; S/ J3 z  ^2 W                .default_trigger = "default-on",
8 U7 [5 i* a: y/ p4 M8 X/ p! x        },
4 b9 m& {) Q7 w" C+ \        {
8 }' C7 s5 o* F) k                .active_low = 0,! B) ]1 ^& F1 y( {5 M
                .gpio = DA850_USER_LED3,% f! L- ]0 |" Y& G4 v$ f
                .name = "user_led3",
. s2 d0 e5 \% n2 F                .default_trigger = "default-on",1 [, }  I" b  Y) N
        },; `; S, p0 q! ?9 e) i
};
4 V' D* [. w0 J8 o) l' l4 t: X8 f# p$ ?6 q. R; M4 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 i+ G' t( |0 v8 i2 F6 D" L        .leds = da850_evm_tl_leds,- p' R! O% i) ^2 U! \5 ^
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 o( _$ m* n0 Y$ W) K
};
; w) `) @" F1 K% S0 k8 i; W( w& u7 ?) |  N: f2 L& X- G4 H1 c
static void led_dev_release(struct device *dev)
3 S2 i6 c7 Z8 `, n1 X% [4 \{3 H/ X0 d8 g; o; |1 J* ~2 G
};: k; a. Z+ J, F4 O( @  H/ ]/ C

' ^  G. ?. [$ g- E$ Xstatic struct platform_device da850_evm_tl_leds_device = {, G6 _/ k' [, G' T
        .name                = "leds-gpio",
8 V! y" ^% j& R& a        .id                = 1,
% x0 x0 A/ H  W- Z: V        .dev = {+ Q& h* K* R0 a. T: a* M" b/ d
                .platform_data = &da850_evm_tl_leds_pdata,* U% n9 R; a) l7 N2 t
                .release = led_dev_release,
6 {5 d4 C( ~8 G) y7 j; o" ^& r, }% @        }
8 _) e* _% [1 B6 D4 o  y2 }/ T8 t, G};
4 M% |% \9 t- R1 y/ \6 ]- H: ]. t5 Z% f) O
static int __init led_platform_init(void)6 @  v# J: R+ `( F6 @  k: I" B4 z
{7 v8 ~' e, }; B/ u, i
        int ret;
, }7 G+ k9 g2 t#if 0
- o' M$ }7 W" g( K2 u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);+ ]6 N- k' P4 |9 o9 g3 N
        if (ret)
4 G; e# C% `$ ]% S                pr_warning("da850_evm_tl_leds_init : User LED mux failed :". v0 {5 _0 ?8 M1 a8 [. L0 U/ A- z
                                "%d\n", ret);6 V/ e3 x' Y  |& r/ y0 B& J* ~
#endif" ^( S1 X9 D4 v+ {9 \. ^
        ret = platform_device_register(&da850_evm_tl_leds_device);
- R- }4 B5 X. Z4 _        if (ret)6 K- S: N& t# c; N. {9 m7 z# T5 ?
                pr_warning("Could not register som GPIO expander LEDS");  k& b: w/ e6 a. Z" }6 U
        else# _: g# [! y* _& z5 T) n
                printk(KERN_INFO "LED register sucessful!\n");. w- U8 ]) m0 P* G
  \% k  p. d' o( N
        return ret;
; I$ e" W! L. ~! B5 {& F: u) N}
2 N  C9 w3 {7 v7 m! o6 w7 I3 K# q! L# j
static void __exit led_platform_exit(void)
! T3 `. `& q% X: {, B, R{
' G+ n4 s9 [* z$ d2 z        platform_device_unregister(&da850_evm_tl_leds_device);. H5 W1 ?0 m' W+ a0 q
9 u9 E: D5 s0 `  H1 M
        printk(KERN_INFO "LED unregister!\n");
4 F5 r9 ^& a3 T/ o; d}
3 Q/ \& H  u3 u5 F% X
8 D8 ]6 }; v. `module_init(led_platform_init);/ P9 {) J5 A4 O4 O* S/ c
module_exit(led_platform_exit);: ?# Z2 ?9 B  H2 v, j) r9 f

  I1 y6 Q7 T- `0 h- X! o3 aMODULE_DESCRIPTION("Led platform driver");- X& A5 `# z( g! L" v: T+ M
MODULE_AUTHOR("Tronlong");
1 ]- s  d; m9 u5 v5 _* xMODULE_LICENSE("GPL");9 R7 G: C- z) |5 s1 k, c  ?6 Q

' E/ j  y  I* O! I/ f8 @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-17 03:20 , Processed in 0.038949 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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