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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 V, o) G( w6 f8 `  j& I
#include <linux/init.h>  ~# W/ t; ]0 @, B
#include <linux/module.h>
/ G0 ?) P* Q0 C% F#include <linux/kernel.h>. r: {* E2 L( F4 Z- `4 ?% P
#include <linux/types.h>0 D4 T  u! e8 `0 ?2 Z# Z5 t
#include <linux/gpio.h>+ c. d6 r! v0 M# A9 u1 U
#include <linux/leds.h>; q" W9 q" A; D6 e
#include <linux/platform_device.h>
* R8 V; C3 y3 m# `( \" J+ N# z* j0 N8 ?0 @7 s
#include <asm/mach-types.h>! A( `3 y& f  q- F
#include <asm/mach/arch.h># E- }/ Q" ?! C! [' b6 Q& I7 B
#include <mach/da8xx.h>) E/ p$ E5 x6 }4 @$ g% @
#include <mach/mux.h>
# z" R: f" R) k3 E* Y5 [- V* l6 E  ~- o/ v/ j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
; H4 J" e& j3 x9 d0 q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 @- D8 H/ t. ^
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# N% z/ Z+ F5 i8 g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) J" K/ r9 a! O) S5 b" w+ t* B/ g+ k) Q3 b0 _) ~1 J: B  \
/* assign the tl som board LED-GPIOs*/3 E% r, G8 A0 G6 w/ y9 R1 G
static const short da850_evm_tl_user_led_pins[] = {. B! X  d4 |' o0 d% v4 U- M
        /* These pins are definition at <mach/mux.h> file */
- j8 p2 g5 ?0 }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- c" W% }; J7 g* a3 ^+ B3 N- a
        -1, I) m, S) B% c5 B) b
};
4 S# a: Z/ B8 E$ C% P7 K4 t; _) \* `1 d
static struct gpio_led da850_evm_tl_leds[] = {9 x, J; r9 T* J/ v, Y
        {
, M! d! L+ s: Z& d7 I' Q6 p* x$ i6 M                .active_low = 0,6 {; W; d  k& K
                .gpio = DA850_USER_LED0,7 {% ]3 @/ H- V9 v3 H7 u
                .name = "user_led0",  |1 U8 ^2 O8 f4 m& N1 p
                .default_trigger = "default-on",
2 O6 u0 \" c. j        },, p' q+ e( e3 U) Z% g2 o5 Q4 _, }
        {$ P5 o/ x' a% ?* Q+ a  v
                .active_low = 0,
; N7 p; t1 L( j  o5 X: H/ P                .gpio = DA850_USER_LED1,' U) Q9 n& I& w3 V: u: k* I, p
                .name = "user_led1",% M5 v# g7 y: y: G! b# ^
                .default_trigger = "default-on",
) x$ h# P4 p: q) S5 L  I        },
: x- `- i% `+ T: q0 C        {- e( i% W  V9 ]+ S) D, i
                .active_low = 0,, ?9 _2 Q& Q$ M. D' ~( |
                .gpio = DA850_USER_LED2,$ ^% Y2 q$ v2 O' F0 O$ A
                .name = "user_led2",
- A4 Q5 Q0 x9 r; J- R. }                .default_trigger = "default-on",
% V$ ^5 D1 e% ^0 [2 I) I; K        },3 \- B: H5 T' B; U5 q$ @
        {
6 n0 V- M/ U0 K  c- P                .active_low = 0,
$ ]/ v7 U$ T9 A                .gpio = DA850_USER_LED3,2 x* V: `* Q/ P% W, e
                .name = "user_led3",$ s1 _' \8 q' b( q% v
                .default_trigger = "default-on",! n, P( w/ k' f  a
        },  S* `" N' g9 a5 R" ~
};; \) D/ k; t) y8 J
7 t* O2 h7 d5 p( T9 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) B+ B6 G! H! A9 C/ y        .leds = da850_evm_tl_leds,- w# B( _; ?1 k  m( p& F. C# P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, T0 H- x* j  J3 y5 ^8 i* a};% t! V4 j* E) [! r# f; N

# _, L2 N, o" X' b- q4 c$ [static void led_dev_release(struct device *dev)
7 Y( A+ ~' G2 y# m& M# M6 S& K+ E{
4 w$ a7 G, v2 |0 D3 Q; G) }};
0 H! r: A$ V+ N0 u3 Y  ]3 j* n9 }7 J* }* r( r% Y2 U- t
static struct platform_device da850_evm_tl_leds_device = {- t) t7 O2 M' M, L. ~
        .name                = "leds-gpio",
1 z7 J. F2 G  ]3 h% S7 X9 R0 `        .id                = 1,
; J- c6 x" Q9 C6 l        .dev = {0 O" _3 Z+ D" T3 ?+ J/ H. Y9 s
                .platform_data = &da850_evm_tl_leds_pdata,
% n- J; l/ h! L8 d5 E. s; J" Q3 V2 h                .release = led_dev_release,- t) |5 D+ @) Y+ _' L1 [4 H$ s
        }: n2 d3 @% }) K3 A
};& `$ b$ k% x$ {! r

; a1 ~) N8 N6 o- s: J/ [  a" istatic int __init led_platform_init(void)1 M( N7 @# c9 R. `) {; z0 @( S
{! B7 U" h* L2 r7 K
        int ret;4 `5 |# h6 ^1 V! F; b
#if 0$ W' T7 R0 L; \1 @7 P+ t* c& k6 {
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, D4 z' o: ?: _" G
        if (ret)
* v6 n8 d0 @* q  \2 ^# O: x                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 F1 z; k. A. s# |' E( _$ }2 w
                                "%d\n", ret);
1 v% h0 {) J$ @& T5 H5 O$ }#endif
1 x2 H$ Z8 p1 c7 e5 _        ret = platform_device_register(&da850_evm_tl_leds_device);  f! O# i8 q+ x+ m( A# t6 _5 e
        if (ret)
3 t, i9 p8 [0 U5 `                pr_warning("Could not register som GPIO expander LEDS");" H, l6 Q2 t9 ~% C4 D
        else/ T: v! |7 W& B  N, W9 `8 \
                printk(KERN_INFO "LED register sucessful!\n");
5 E1 d( z* b4 X
" z2 S9 s: }6 h: `2 T        return ret;2 i8 a* i* e- X; ]- ^
}
& ^& b; ?2 I$ [9 @: _: s* J! S; l) d! }1 p7 _$ b3 l6 y+ |; J; X
static void __exit led_platform_exit(void)) `7 k. V1 s" N" D; y
{
* c. ^$ U) L1 }- O/ e        platform_device_unregister(&da850_evm_tl_leds_device);
& P  ^6 k3 L9 _  [9 x5 I
# X$ N" `7 e$ x! e        printk(KERN_INFO "LED unregister!\n");
8 W! _  q1 s8 y5 s5 d: s5 D$ A}; t- K% ^! c5 L
" x( g) _. L& e/ k
module_init(led_platform_init);
, `7 ^" F/ e  `# w$ m; u$ ?) bmodule_exit(led_platform_exit);
- Y: X) t7 W( I4 h/ K& ^# p9 X# D
MODULE_DESCRIPTION("Led platform driver");
$ l3 ^6 m! }* U7 e$ g2 {/ x7 [& L7 Y- EMODULE_AUTHOR("Tronlong");
+ y+ r5 O7 [( Z: ^+ KMODULE_LICENSE("GPL");: \1 G% @0 P: Q) R( K/ s, x0 |' H

. [1 h2 J( c0 Z1 m! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-15 08:37 , Processed in 0.040176 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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