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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ m! Y( ~, F1 A#include <linux/init.h>
) S9 x; w) E3 _# d) j#include <linux/module.h>
$ O# s& B: o" W# A* L' l#include <linux/kernel.h>  K. a7 r1 n$ h7 C
#include <linux/types.h>/ h! w# C3 D+ @" B- X
#include <linux/gpio.h>
0 p, |: @' R, |#include <linux/leds.h>
/ L9 s  p6 O2 a! G$ @) n9 e% z2 p#include <linux/platform_device.h>
& G) c! v, B9 J5 Z9 `, m$ z2 T" F' B) @6 W0 \
#include <asm/mach-types.h>
% F8 ~1 J( H* y! S#include <asm/mach/arch.h>5 ^7 h' R: N! B; V
#include <mach/da8xx.h>7 E  x7 b: h0 d* F& s8 G$ M
#include <mach/mux.h>1 H9 G, W! ]; x: A

) k+ |6 _7 F+ j; q( `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 u* U  m1 D) b# ^9 s( D3 Q4 Z* z% x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# U2 J( O7 M+ w5 u#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& a- h& A2 d4 o. g' v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 S& A# u* b# T2 r  t5 y- o9 m% O3 W2 }: E2 J6 i$ |5 Y
/* assign the tl som board LED-GPIOs*/
9 W) B+ b2 ~! n$ Cstatic const short da850_evm_tl_user_led_pins[] = {
/ N! h) Q! ^- x4 M. `7 G6 N4 v        /* These pins are definition at <mach/mux.h> file */
0 P) _8 k4 Z+ O0 ?$ U& G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
. z8 J3 g( I. x8 A        -1
' x! y, T$ L/ f+ {. }* H$ [9 y};* U+ ~  I1 j! w. T/ E1 G, m

- K4 g) X" ]" Z: I7 W& Xstatic struct gpio_led da850_evm_tl_leds[] = {7 r+ E6 V7 c1 @0 W+ Y
        {: [; g2 f" y* r' Y. P: X% ?- h
                .active_low = 0,, K3 i4 `0 \1 f, w
                .gpio = DA850_USER_LED0,
3 \1 V- t; W6 V. T6 d/ b                .name = "user_led0",' x* c4 m9 o* p8 h+ H! {1 Z
                .default_trigger = "default-on",; W. N; ^' h! Z( e8 V, z7 Y
        },: v1 B8 e' j( w8 ^
        {
, W; a$ C+ e7 g0 X; b                .active_low = 0,7 V: ?  k6 a2 b8 H" P
                .gpio = DA850_USER_LED1,
& V& E2 d" }0 N4 c                .name = "user_led1",
% f" z& N) R( J4 L, |8 H; d* H                .default_trigger = "default-on",
3 a$ }, o5 ?4 x8 ]5 [5 @        },
; k" m) U* r% I0 R8 i8 p( r, Z        {
: @; i0 ?9 n' K' l. A5 \. A: K6 n                .active_low = 0,  A) ^4 t) [% g2 x* y6 K4 A1 s
                .gpio = DA850_USER_LED2,7 E4 f! ^* G8 k1 J7 }$ V% @5 [- w3 i
                .name = "user_led2",
6 ]* L! d& p) L  ]& B  e1 {                .default_trigger = "default-on",7 }$ g8 X! ~0 E8 [2 c6 E0 @( p
        },
+ R" c4 S7 j1 A3 T        {& N! T; D) s8 P0 Q4 C
                .active_low = 0,9 a+ w5 e2 j9 }4 ?4 S
                .gpio = DA850_USER_LED3,
3 P4 B; {4 T/ ?* t/ Z                .name = "user_led3",
. H( ?$ {) p' [/ Q/ W) ^6 L                .default_trigger = "default-on",
( _) g4 c1 v: ^, K" i' U        },1 l7 Z; S$ V: x. G
};) p( ?9 |( r% M9 H9 j
$ ^! @0 D5 M; [8 T9 z. ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: R. S/ s/ M, n2 a        .leds = da850_evm_tl_leds,/ p0 P- O0 R/ n% A4 k) m
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),5 @. d) \, P& S2 h3 a
};" R/ o  c$ `; ~/ H

( T5 q5 Q3 Q1 Z0 dstatic void led_dev_release(struct device *dev)9 K" [  x. C/ N8 n9 b8 T
{
+ l8 G" u& e/ }; `2 `/ l};7 j5 `3 R) _1 e4 V% U! o$ \

+ Z/ m" ~7 ^, z) `/ G' z  C  B) Gstatic struct platform_device da850_evm_tl_leds_device = {
% B0 K" q! c& O7 y+ F1 m        .name                = "leds-gpio",1 F1 h; O( |: R' W) j9 ?6 b
        .id                = 1,6 u1 d  d6 ?" q4 c
        .dev = {6 [( A7 O  O' {2 u( j6 M# D
                .platform_data = &da850_evm_tl_leds_pdata,' ~1 p6 H! c8 U; u! r; |
                .release = led_dev_release,7 Z0 q7 ?9 F( T+ F
        }
3 I# L- w& Q7 [};
* D8 P5 i% ~5 u4 Q) V2 [( a
; {1 s1 @9 R/ ~/ h: Istatic int __init led_platform_init(void)
% q0 q% n4 M$ k1 {1 @+ Z" I' g{
. z# ^; V3 S9 r# f        int ret;) }- ~7 k# W( H; _
#if 0
9 C) H! k- [  N. e2 @9 R        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 J4 u1 V& G) V0 {! G
        if (ret)2 P0 {6 `$ T( p4 T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( f+ W& c4 V3 \* o8 b2 g
                                "%d\n", ret);7 b! }. R. j3 Y: w" }3 ^
#endif. f9 X; ?( ?; [0 T
        ret = platform_device_register(&da850_evm_tl_leds_device);
- ^8 ?/ F5 f/ ?  D! j) {* n+ T        if (ret)1 U1 `& y* a) N4 d4 q3 K* X8 L
                pr_warning("Could not register som GPIO expander LEDS");9 e* y& a3 f6 T! {& `* y. J
        else' e0 U* M" L/ d8 r
                printk(KERN_INFO "LED register sucessful!\n");8 A8 t  G, g& ]; K% s1 m7 R7 q
6 l6 U* E1 B: B8 X
        return ret;* a! W% g! Z3 [+ x
}* W3 l. [: F9 a  E; [" F! x, `  H

( c4 E: U4 q% ~1 c. S: ~* N- F" kstatic void __exit led_platform_exit(void)* p' `, g% b, V* I, x: ?4 e
{6 k5 a1 p; g3 o( Z
        platform_device_unregister(&da850_evm_tl_leds_device);
* ~: z' s$ W: W, [3 N' _/ b" w, r7 V" Q& W* T, i0 S5 a
        printk(KERN_INFO "LED unregister!\n");
6 s/ P: E" B. q; L7 B$ V}# r) o0 n/ m" i. _1 I+ V7 Q5 R& s

5 u8 ^1 ]5 O- F) H; Zmodule_init(led_platform_init);
$ S, Q8 Z- j0 _2 y1 v- `) Y: Gmodule_exit(led_platform_exit);/ \& a. T/ o- @, a% T
9 s) u8 e) H" P6 O5 f& b
MODULE_DESCRIPTION("Led platform driver");7 A, x/ k3 |6 T, b1 [
MODULE_AUTHOR("Tronlong");
% Y+ J8 U+ {. QMODULE_LICENSE("GPL");
/ u% M- L3 ^# _% E9 Y  ^, A  q1 g9 y5 {" S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 14:20 , Processed in 0.040530 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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