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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" o2 [* u$ R5 }#include <linux/init.h>9 j* i1 K3 {$ X* Y4 Y/ B7 E5 V
#include <linux/module.h>
0 j8 I* _! X# f, [. Z# }#include <linux/kernel.h>
' E+ D/ T6 e) Q$ i+ i#include <linux/types.h>  p6 t8 G" k! s& a4 B4 H
#include <linux/gpio.h>1 ?$ |% Y' w0 H+ {3 T
#include <linux/leds.h>
; g% B/ O9 d" j$ G( ]#include <linux/platform_device.h>
# e  E8 D9 Z/ a) o
4 T5 ~5 h3 B8 Y' Q* c$ ~" R: O#include <asm/mach-types.h>& `" w- _5 I8 c7 F' |; `+ H
#include <asm/mach/arch.h>
. F4 R. |. Y, k) G8 d9 w5 E0 w. [#include <mach/da8xx.h>
7 B+ p9 P- |0 p0 I; a#include <mach/mux.h>
8 {! f# V8 w# [; Y. B- }& c% l
& r' h6 `) _* m% v4 L$ n( T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ _' Q/ W$ z: |5 a) `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" c1 {$ _- ^) J; @8 F" N. u! Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- G' B: I- n" w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)$ ?* }4 Q0 T2 V- @+ b. Q. H( b2 `) V
* g% X6 _4 j" k' |5 m2 d
/* assign the tl som board LED-GPIOs*/
% b) V+ O5 e0 Z% I, H3 nstatic const short da850_evm_tl_user_led_pins[] = {7 s/ g& v* b% ^* m
        /* These pins are definition at <mach/mux.h> file */
3 Y8 n& N7 n/ y6 B2 ]! i7 M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( V; C0 L/ k6 A        -1
) ^- u! h) t) w};) |" o- J+ [8 L' X1 a7 l

2 o$ _5 `# a& K& ^, N# rstatic struct gpio_led da850_evm_tl_leds[] = {( r: n* l0 S' c, I
        {
" E# x8 G/ U  n4 H! a                .active_low = 0,
- {& V* X9 X5 X3 `  _                .gpio = DA850_USER_LED0,! ^$ d/ `; L3 X5 L* g% e
                .name = "user_led0",( f$ Y8 l$ K6 r) ^' r; R( B
                .default_trigger = "default-on",3 i% v: d1 I( c8 `" [) H) @! b
        },
0 z4 K5 r7 D1 C- u8 @3 q        {4 l! p  [* N" W' x
                .active_low = 0,1 i6 x+ C( Z" i3 y7 a5 U* J
                .gpio = DA850_USER_LED1,5 D" r' y* m+ I3 ?6 N1 ]
                .name = "user_led1",
+ @' A5 z' V9 ~. v! Q# m                .default_trigger = "default-on",3 w: @. E' {& M
        },
; s% J! c' h5 {( f3 _8 b3 ^9 V  u        {
2 ]+ Z1 \4 L# {. D: w! i: x) {                .active_low = 0,4 f) d2 O+ T0 G5 a8 o! V% F
                .gpio = DA850_USER_LED2,
& o* y/ l2 i$ N! {/ F                .name = "user_led2",
% n8 I( M- Y" q6 F; \6 J                .default_trigger = "default-on",- ~5 _+ }+ i: Z) n2 W: |) I0 r0 n, i
        },
2 Y7 e! C  c, x: n/ J- n  d( W        {" `+ ~( z, h/ n; K% ~# i* i
                .active_low = 0,
; J9 h! `3 C6 ^, V1 b2 Y; q                .gpio = DA850_USER_LED3,
5 N5 w" o2 I& w) V8 N! X1 {% }                .name = "user_led3",) C! i$ t4 G6 U' d- B" R9 f* |
                .default_trigger = "default-on",
4 c; a4 W+ `$ a        },# |/ C# o' d# Q; t+ D6 E
};  X4 I) W% `; y& U/ A. N9 V! q( t

' |9 `" _$ m+ X1 a9 R+ h+ \static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! q4 u9 S  y3 t3 o        .leds = da850_evm_tl_leds,
: N9 a% E& i  Z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 R; a: }3 f! a1 G- M
};  |( M- O$ I( t3 x9 A# P4 _
1 [  d- d4 c0 @) b9 @7 W
static void led_dev_release(struct device *dev)
) R/ e1 E/ \" s6 Z9 t& t{
" r" Q  N* H; \3 v9 a& Z& O! H};
8 ]5 L& M9 I3 \5 ^% B0 [5 r4 O, p( s: z, I& v9 T
static struct platform_device da850_evm_tl_leds_device = {8 Z9 T1 x- ^( ~% W/ ^1 n4 u
        .name                = "leds-gpio",
' q$ o$ y+ o# T% l        .id                = 1,# k' f! `+ H& V+ Y2 _1 x2 w
        .dev = {
1 U6 z- S( c7 ~3 a- ^                .platform_data = &da850_evm_tl_leds_pdata,6 H& ~% s9 [' O: l2 V3 m
                .release = led_dev_release,
0 v( u  M) I# S# {2 z; y$ h& X        }. S! R) B. Q5 P, s. ^$ Y" K* u
};
1 x1 m0 a) M9 h( }* A2 l. X, t, M( g& u8 O4 \9 }1 N
static int __init led_platform_init(void)
4 ]( ~6 [# q* I& I{
3 E1 E! G0 k( i3 N        int ret;
+ w1 F' {" V  ]0 a) h. b/ o2 i. o#if 0
; k" g# D9 t8 W* u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, I  p" Q5 d* m2 g/ j# a, Z5 t        if (ret)
, u( i3 O0 p" i( g5 d2 _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; w8 H% y7 D* j; r
                                "%d\n", ret);7 z4 s. q& o: v7 U# Z. z: z, q
#endif4 u4 }. ?) o/ C. M) j9 e% |
        ret = platform_device_register(&da850_evm_tl_leds_device);5 ]  |' C- b3 w3 k/ ]
        if (ret)
' P3 q, r9 h. J4 y$ a                pr_warning("Could not register som GPIO expander LEDS");
5 Q% }3 _/ u8 G3 _- ~' k        else& c% s- D0 Q2 ], A
                printk(KERN_INFO "LED register sucessful!\n");
. C* F$ \. p! K) F- M6 v. \& Z# u: a& W6 L. J. l: n6 i9 r
        return ret;
: H; w+ x  A' i7 i8 X0 X* }: d}$ X2 h* ~, x  |

* g  B0 I: k, r# Kstatic void __exit led_platform_exit(void)
9 b8 z( t- W: b* X) L* q3 G1 ]; p* O{
0 x" i8 \2 h. l& y5 @        platform_device_unregister(&da850_evm_tl_leds_device);
1 i' {+ p( |2 X+ ^1 T8 p* f1 g+ k' B1 t6 s) V. x" ?
        printk(KERN_INFO "LED unregister!\n");. E3 O& e* z) n0 n8 p: D8 L$ l
}
- Y) J: |( G& n! z$ C. P# ^' V( p7 H2 I3 d
module_init(led_platform_init);
4 e5 Z' C# ]$ G0 a4 d4 D6 U( A) imodule_exit(led_platform_exit);
, z% t( q* _8 a5 a8 Y( g/ i4 l5 J- s6 Y: u
MODULE_DESCRIPTION("Led platform driver");# M0 J, q- J- H5 O" u0 _. h+ j
MODULE_AUTHOR("Tronlong");$ A: ~/ h* z+ R& q) W
MODULE_LICENSE("GPL");8 y9 G* S& m& i; J

7 }9 o! h- j" _$ R$ }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 02:23 , Processed in 0.038708 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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