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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 x; l7 V  A0 K- y; x+ T$ {/ S% {
#include <linux/init.h>0 N& m' B. }' Z' w7 \
#include <linux/module.h>+ A9 v/ B% g/ A
#include <linux/kernel.h>  o; w; s. {% h; r
#include <linux/types.h>
' k3 |" w% s3 T#include <linux/gpio.h>
/ T. y9 l  l7 s9 \3 V/ s- a#include <linux/leds.h>& @% X0 i( ]+ `) T  C- E
#include <linux/platform_device.h>
) |  m0 l) S% J  d
# Z3 H. ^6 ?$ [4 N  Y/ D& a#include <asm/mach-types.h>
0 {' T2 w6 z+ b9 ~/ o" v#include <asm/mach/arch.h>6 G' [: Q. x6 d+ @7 A; j; t
#include <mach/da8xx.h>
( X9 ?6 T5 z7 {+ y2 N#include <mach/mux.h>! W: J5 ^- a, _! B) \. \3 h

9 \3 m# F2 a7 n  }* g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" V% @% z& K1 {/ R$ R#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 w' i1 S3 `$ ]! ^4 G! f#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
/ ?; A6 C- d6 K! p, F' [+ t& ~#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 E4 z& y, Z$ |  m# K2 [/ \) R* E3 G. P; m/ Z4 {. L9 k
/* assign the tl som board LED-GPIOs*/
9 A. g# b3 |% o# F! jstatic const short da850_evm_tl_user_led_pins[] = {
) z% t" e) |$ Q        /* These pins are definition at <mach/mux.h> file */+ O3 V0 w7 s/ y% i
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ x* Z7 V9 y( u5 a$ M        -1" v' K# E2 K( @1 v. }
};
$ f- o3 U* e9 f0 B3 Q7 D! X0 R. u9 e4 h% D& W0 T( B3 g6 J4 x4 x/ K% {
static struct gpio_led da850_evm_tl_leds[] = {
2 O! V; r3 Y; a        {
! p/ e6 F4 Z8 E- L5 I. D                .active_low = 0,$ L3 p5 x8 r, X  s, f, p
                .gpio = DA850_USER_LED0,. f( r1 }: u* Z0 u0 G7 H; X: I
                .name = "user_led0",
& A/ p! p) ~; ~( m8 P" o                .default_trigger = "default-on",
5 t  S/ H7 L8 R. N3 N6 u7 ^" @4 y        },
" Z9 h+ g! w0 A& |. @        {
+ ^) R* n$ [5 r5 V                .active_low = 0,6 R- W- I% {% u1 n8 P1 s
                .gpio = DA850_USER_LED1,
3 x, ?  C5 }; d5 R* @4 A                .name = "user_led1",
. E1 _( @# o7 a5 U9 `$ J; N- A9 i                .default_trigger = "default-on",
4 ?# z5 c, o/ G3 Q6 _        },& m/ m. r6 `. K8 x% }' \
        {
! z0 B' \$ U7 V                .active_low = 0,
" ?- e' |$ c' F, p- H! h                .gpio = DA850_USER_LED2,
% j+ Q9 `8 ?. P6 H                .name = "user_led2",
  a5 g2 a2 K% O% m9 [                .default_trigger = "default-on",
; x8 d( |* ]8 Y) M4 ?        },
& F; N2 Q' v( s! I        {
7 D- k- A6 a, n+ r                .active_low = 0,5 [+ ~0 S" ^: f2 s' O
                .gpio = DA850_USER_LED3,: [$ w6 h. C! f. O
                .name = "user_led3",
* ]7 [( ?$ }1 e2 o6 I/ m                .default_trigger = "default-on",
0 m4 m: x* v+ L        },
8 a6 r5 Q" B- b; q: W' g( h* F- R3 O% }};& {7 `8 l. ]/ V, T7 F
' C0 i5 ?3 k4 W/ R, H! p
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 p" p) E& c0 Z: ^: s1 ]
        .leds = da850_evm_tl_leds,  z* ?& b+ w/ \+ e5 L7 r4 W0 Y) W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 k# w8 y4 f( O7 ?+ ^* J
};
' y' h! v+ d& E8 F" U! ?
6 o0 z* ?% Y; P1 I: {$ dstatic void led_dev_release(struct device *dev)% s* S8 {# q2 s; D0 a
{
% l2 u6 i& w0 |: M; ^};1 V" G' P7 N2 Q3 n2 Z
# A+ A' {6 V& b8 q7 A! ~# z
static struct platform_device da850_evm_tl_leds_device = {, Q( u6 I9 H! U. y2 Z0 R
        .name                = "leds-gpio",
& b8 a" Q& o1 [2 f. y/ `3 X4 N% ?& j        .id                = 1,; v8 L7 f+ r% G9 c
        .dev = {2 @$ `. B% x6 L' a0 o
                .platform_data = &da850_evm_tl_leds_pdata,
! m. I/ V0 Y/ Z, c6 x! V                .release = led_dev_release,
3 y! Z4 H* q" u( Q9 S        }
$ W- ~- x2 a" X% x% n# i6 l};
: Y) T/ ?+ c/ S" Y$ C+ }
1 }5 U' p% L  l' }static int __init led_platform_init(void)9 h% m7 o: }' A
{, ?2 x8 U% |/ }+ O- n
        int ret;$ e& S! J! N# N3 m# Z
#if 0' i7 i8 P+ w; ]# [4 m) Y; U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  c0 j+ x  W% {
        if (ret)
. J' M- t  M. Y# E                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- N3 W- U$ \$ O8 Q5 M+ K& L                                "%d\n", ret);! z; l2 J& o$ U% z5 [1 g
#endif
& E# L7 Y2 `! o5 N6 U; x8 ?        ret = platform_device_register(&da850_evm_tl_leds_device);/ E' D2 \* _5 B
        if (ret)( g  S" `8 \6 v0 r
                pr_warning("Could not register som GPIO expander LEDS");6 t4 L+ f8 F4 f4 j# C- C4 H
        else! J: g5 b' e2 ]8 C, w9 j
                printk(KERN_INFO "LED register sucessful!\n");# J- u- U6 x$ f4 P6 s  E" H7 C# L

9 T' {- G+ I2 l2 S        return ret;9 N- j) P7 |: t6 R7 a' W
}% `1 H: j: D* t$ P0 _  T9 a

" ~9 R7 o  K; G& m4 j% |& Ustatic void __exit led_platform_exit(void)
0 B1 ?9 h* R4 J  T9 B* v2 `{
* t  j0 M6 n0 ^" W* i4 [! w, D        platform_device_unregister(&da850_evm_tl_leds_device);
0 Y7 |4 I5 W. X3 B# B
  Y) G' }. o- w7 K        printk(KERN_INFO "LED unregister!\n");
% K- J6 r* |1 E( a- ?& R}/ Y' g1 e, `0 O' R; \6 ]
4 c: h7 T) W- G3 L" L' L1 y7 F1 @% H
module_init(led_platform_init);
3 m& l/ o; q8 G; X9 l; U* nmodule_exit(led_platform_exit);
( z7 X  _' f3 y! c7 K0 d! f) U- I2 o! w( W
MODULE_DESCRIPTION("Led platform driver");0 E* k3 a0 d$ b, U% ~/ V- K
MODULE_AUTHOR("Tronlong");2 I" p; `) Y1 S% u/ _3 D3 T7 T. q
MODULE_LICENSE("GPL");
4 A; r( _! G1 X& o& V
9 p  x6 s9 h4 V& ~0 I) i: O# G. f" ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 16:57 , Processed in 0.038895 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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