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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ o& e! S3 p2 Y. Z
#include <linux/init.h>3 J3 S- h1 Q1 j! O1 d6 Y
#include <linux/module.h>9 ]3 x4 ?0 T6 h/ O
#include <linux/kernel.h>
3 z4 S3 V2 ^3 X) W& k% d. Y#include <linux/types.h>
) P) `* q* n  E% Z- p, e% E: |# q3 G#include <linux/gpio.h>
/ o* H9 ?2 Y+ o4 r#include <linux/leds.h>/ k0 Y1 x( T, k/ a% v  L
#include <linux/platform_device.h>
. i9 P3 p( V1 B& |+ a) U# \* B$ T" F2 b3 W: k+ i
#include <asm/mach-types.h>
) Q% f6 A5 S8 |, r" u: a8 b* q+ ]$ e#include <asm/mach/arch.h>
8 n& N6 H5 J; P" v. I#include <mach/da8xx.h>. y$ b: t6 T5 G" K- B' i- _4 D
#include <mach/mux.h>  t; O0 C& I  E. v, T( L

3 F% ]8 H6 r; h  D6 z' V3 R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 w9 d: ~2 ^3 y4 m; |$ ?" Y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 p5 X) u/ V$ ?: Z; [- C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 j7 O$ P* Q$ M2 A' i5 H* |* g) K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ t/ P7 o. `. `
, a* i! i9 i+ x) q$ |9 y
/* assign the tl som board LED-GPIOs*/% t) _7 [3 O1 M0 b2 i0 p7 L
static const short da850_evm_tl_user_led_pins[] = {
3 Y, y# P, H' x$ S. b1 c4 D6 {        /* These pins are definition at <mach/mux.h> file */
5 T/ w- r2 w  n        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,5 E$ C5 ?' O6 }" ?  `- l% b
        -1$ G/ c- R5 e! Y" @1 W. [* g* Q) `
};
5 |! ^% \( T$ z9 a, h
" c" J( j3 V- Astatic struct gpio_led da850_evm_tl_leds[] = {
2 I# ]! I# k7 w1 c8 E  T0 J( t+ ]        {
; ~* U+ u' v) N& z                .active_low = 0,2 P, c4 k) ?- Y; A. \. j: ]
                .gpio = DA850_USER_LED0,6 x0 y9 g& U" g# y  W
                .name = "user_led0",
9 F% |2 U5 {$ c/ j* C) t                .default_trigger = "default-on",
$ E$ z% @* |2 h, _$ Q  r, H* ?" G        },! g$ ~, O5 G" u0 f4 l1 n: W
        {" r* f/ c. ^) V8 X( `" d
                .active_low = 0,
+ h  `7 o, l, ?( w$ H                .gpio = DA850_USER_LED1,) U: M; |9 H* j2 D
                .name = "user_led1",
0 e9 U9 {) N/ `4 F                .default_trigger = "default-on",# B% j( J' M$ ?4 t4 P6 q
        },
. B/ P; a" V' V: y" w        {0 \$ i6 P% l. j. O  U
                .active_low = 0,! [5 m, N. |. v; x0 Y. h
                .gpio = DA850_USER_LED2,4 I: V& @2 R3 l1 V3 b" o! r
                .name = "user_led2",; e1 J1 L; V8 R& ~5 u
                .default_trigger = "default-on",1 K3 [7 ^$ R  Y9 S
        },
+ s- O5 n. `; ^( d3 k, u7 |( N, v        {: H5 F( S7 W0 n0 F6 j
                .active_low = 0,
, g% p, k; ]2 W: P4 R% {. I* `' W                .gpio = DA850_USER_LED3,8 M7 G; s, ~2 a' \5 d* b
                .name = "user_led3",
+ g) {6 s! M! g) d) N                .default_trigger = "default-on",! s  T8 g) g  j! r& H( V0 s: y
        },
3 m% f) v0 o6 F};! A7 Y3 r) o" x+ g; b% N. u$ e9 z
3 u/ j0 V: v' P( p+ j5 n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! M- q5 u3 `1 z) M/ m
        .leds = da850_evm_tl_leds,( [0 x! P" L. a5 M/ Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) r% V+ j; R- v7 I: p! v. k
};
& D0 ^6 Y% a: i% m
. h; q- F' B; g7 ~5 M3 Cstatic void led_dev_release(struct device *dev)
- [$ _  m+ |7 V& r7 z5 f9 n{' @8 s6 u& N5 u  H1 b
};6 \  d% J/ I( t( n- V
# G; x* p7 r4 A5 `
static struct platform_device da850_evm_tl_leds_device = {
) S/ w, U8 M+ v3 U( j( E" R+ M; \        .name                = "leds-gpio",$ J3 h* i! U6 f9 D4 g" U
        .id                = 1,
8 }9 }% `# h6 a9 p( i: U" x  ^        .dev = {
6 K" G+ {) e& k9 H; G                .platform_data = &da850_evm_tl_leds_pdata,1 o' P& K9 ^5 ^9 `3 `2 k- F
                .release = led_dev_release,
( X+ }1 N  A  m+ `( \        }
9 z1 s# `7 U1 Y& O1 n" ]" q};
! w) G8 o; X- p, v
3 l1 ^3 [3 T. A! ?) Kstatic int __init led_platform_init(void)
9 @- T5 P: z& |! [  \9 ]{
* h0 P" Q( }! P+ e& z        int ret;
. ^, d) x5 Q* A#if 0  H- @  b9 J+ D+ J! [5 o6 ?. _' y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' P6 |3 I6 S& [1 R9 t; e/ B
        if (ret)
' U% s' }' v5 j. B$ U9 {, X( T, d; u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") S  Q3 |2 m' ?
                                "%d\n", ret);
" a2 t+ E0 N! {4 y, ~#endif1 g( A# }! u" _: j
        ret = platform_device_register(&da850_evm_tl_leds_device);
/ s& `6 i  a8 C+ j$ D. x9 F        if (ret)
8 t/ a& S6 S9 [* B                pr_warning("Could not register som GPIO expander LEDS");
5 [6 Q$ m: C" F% m$ ]        else  x* q- y% l) E$ i0 }
                printk(KERN_INFO "LED register sucessful!\n");; ^% \1 N9 r1 f, F/ Y  ~; a
- k. T+ _- B! J+ g+ A) m2 E
        return ret;
; p1 i5 `2 G) n' o4 X}
- K2 Z+ d: ?# K+ N2 L4 o/ m7 O
; A+ X: I# Z8 s4 q" b8 M* `: `static void __exit led_platform_exit(void)' t" ^+ N( j5 T( m: v1 G
{
- Z& ^  }2 O# T. T2 n6 |) P        platform_device_unregister(&da850_evm_tl_leds_device);6 w; L/ a% Q) y% P

! W, j4 Z- m) O, S2 z% g9 M! F        printk(KERN_INFO "LED unregister!\n");1 y; Z9 @7 W" G$ e# x
}9 E- {$ m; I6 J, Y3 S5 V  S1 G: ~
8 A' K2 {% l1 S. C4 i$ ]
module_init(led_platform_init);7 y: n& c3 Q4 P$ M+ _7 ?
module_exit(led_platform_exit);
: h8 R0 h" @2 O
# l' ]8 a% h# a0 {* }MODULE_DESCRIPTION("Led platform driver");
# ?. o* a8 j$ k+ H# SMODULE_AUTHOR("Tronlong");# K2 q. f, y8 _
MODULE_LICENSE("GPL");6 W+ U5 }, @# V' W) Z

6 ]; p& A3 G$ W8 _6 Q% U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-30 02:33 , Processed in 0.038742 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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