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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 n* P' D3 B5 f' t; a
#include <linux/init.h>- A  f6 A* t$ W: e' G
#include <linux/module.h>7 w. ]: r# h- o5 X8 z# x2 F2 x' L  v
#include <linux/kernel.h>* A0 ]$ r  L% J% t' u' s' ]
#include <linux/types.h>5 `) O" t: x7 l5 L0 R; _
#include <linux/gpio.h>% v' L  a6 i. d7 ~/ U- w
#include <linux/leds.h>; w2 \6 W7 Z* ^* b: V7 }9 t
#include <linux/platform_device.h>
! e; S# z9 t5 c( t- K  K/ q! v/ n% C5 N4 ^
#include <asm/mach-types.h>0 i9 |# _$ i" x* `# F# g- ~' j) H+ R3 V
#include <asm/mach/arch.h>
8 @6 C" d" w* |1 A/ o/ Z#include <mach/da8xx.h>0 f, G% ~% q6 |
#include <mach/mux.h>2 b! Q" c9 A9 L- n( T0 V3 h

" n3 v" m* ?1 K7 b# @#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ k6 [  i' m8 c+ }: H7 E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), C6 Y) H  J% T# S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; q. Y  P% D8 Q! c/ K. d#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: Y& d0 Y! T  D/ H) ?" S9 W3 M- x. f4 q5 p6 ~
/* assign the tl som board LED-GPIOs*/  c; h  C% W" w3 F) y8 V
static const short da850_evm_tl_user_led_pins[] = {
  C; I0 i8 T0 o+ G) I        /* These pins are definition at <mach/mux.h> file */
2 H5 V; l- E* P! i+ b5 r7 d1 Q! a        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* ]9 ]6 @. Y9 o
        -1
* s: X  D7 }5 H7 ^/ v- Z};9 {- X2 @1 `) h0 t4 J: N

2 _8 x" j5 u, k' e5 `static struct gpio_led da850_evm_tl_leds[] = {
' d5 E3 X) O( n& R        {6 A2 P1 X' D  t6 U9 t, o  Y4 v' S+ j
                .active_low = 0,5 W; f3 u/ x6 \" r/ @
                .gpio = DA850_USER_LED0,/ b  d* t& O; y! k  U, y
                .name = "user_led0",2 A1 r) B) O9 P- a( e
                .default_trigger = "default-on",  J2 j2 b' {8 B: b: R
        },
1 e( V3 d2 m( t$ l        {
+ D8 H4 n6 F" O8 w% G                .active_low = 0,- A- Q+ d+ r* c) q* [
                .gpio = DA850_USER_LED1,$ i. ~& A. k: H
                .name = "user_led1",
9 r8 v9 B- F( G; w9 [) @                .default_trigger = "default-on",9 D! K. r) f0 L$ F  k/ f) U$ \
        },$ A) Y/ M1 |  b. x
        {
- f7 |8 W! R: Z" r                .active_low = 0,1 x; ^$ X. G2 N+ A8 ^
                .gpio = DA850_USER_LED2,
+ k- ?& v0 X9 ~/ z/ e+ n                .name = "user_led2",5 i4 Y  m8 {7 |* {
                .default_trigger = "default-on",
. e, a) A0 q: w9 G0 m5 D        },% Q$ c$ A6 |- V$ L5 ?0 S
        {
/ g" s( q: |& L                .active_low = 0,
1 C1 {6 ^& g- j4 ~  E6 N  I0 }                .gpio = DA850_USER_LED3,
( a0 N; O( |! [% m                .name = "user_led3",) \7 i( z3 E& c/ i# g3 ~
                .default_trigger = "default-on",
4 q1 a* r& e$ d2 J& [; |, r        },* Q- u' q# x% `8 P2 q, V
};, I% z0 Z8 h. J# K5 B  Y% |, j/ a  d, {

$ d5 J1 }& t2 `* |6 c8 i# |8 r! gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& @. p4 V& u1 L0 o
        .leds = da850_evm_tl_leds,% L4 s9 |1 i1 E1 U" C0 ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),% C; J6 B7 G% ?( Y2 N& h( w
};
7 K7 [4 R. b* Q( f* y
/ O8 m9 g$ {& s  v! I1 h* A: g7 xstatic void led_dev_release(struct device *dev)
/ B- I! ]8 z& t( z$ h{) r9 Y2 @# o1 q
};
! Y9 u# A, K- {% p% _7 _# @* s% Z+ @. [( Q9 q# E% f; O
static struct platform_device da850_evm_tl_leds_device = {9 i) k" ^: {5 M
        .name                = "leds-gpio"," [/ D  k6 _6 P* k2 |0 S# A" F! E
        .id                = 1,: j4 h% e+ C3 g5 f
        .dev = {4 @5 o1 M5 y9 {- I& N
                .platform_data = &da850_evm_tl_leds_pdata,
( B0 l6 n+ b3 ~& [" l                .release = led_dev_release,6 e0 V5 a: R) D5 f5 t
        }0 a8 g  O% V) ?5 ~. h. }/ C
};, D# Y' X# o! S. D7 M$ ?
! Q) [' R4 w/ y9 u! h0 r: h
static int __init led_platform_init(void)
2 |. r8 w9 F7 g9 T{
- v6 b# x* z/ `' O7 i3 S        int ret;
0 R0 `' V& [, e' }. Q7 i#if 0
, z" h0 f. N, B: N" q" V  \        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& y& S: ~7 j. V. y& o6 ]        if (ret)0 s: U8 x: X; m7 D! k1 A- `
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% e. ]* R, h( x  `1 I                                "%d\n", ret);* x2 Y& `6 `1 F' e& B% @
#endif
3 ?: K: u/ |/ d' X! Z9 Q+ x        ret = platform_device_register(&da850_evm_tl_leds_device);
$ A3 ]! ^' E4 R: u0 p        if (ret)
8 t3 ]3 j" I- q8 H0 X  ?' B                pr_warning("Could not register som GPIO expander LEDS");
3 `+ V- P. i- z& D1 T% L        else
3 x+ G+ I4 h; b  S- x; p; y8 D                printk(KERN_INFO "LED register sucessful!\n");
* w& K/ I/ V9 {3 c9 {* j' q# g
8 r. P$ \3 D; `# [3 Y! w        return ret;
2 ]0 n& S% |. Q4 \' w6 }  a}4 A1 I' l4 o# U3 ~& l0 u, ?- P: X

: D' K; I' V7 K+ u% T' vstatic void __exit led_platform_exit(void)
  m6 e3 J" [$ M{5 C' L  D" M5 f$ p4 u
        platform_device_unregister(&da850_evm_tl_leds_device);
5 e4 G: z5 I' A  p" o# j
& J$ W  U  |6 ]1 d        printk(KERN_INFO "LED unregister!\n");
0 k( A* [+ q& g' o$ J; O6 N4 F6 }}
* U/ Q0 @% Y& B) F7 B2 N  ]( d- j& ?/ n
module_init(led_platform_init);# a' }" ]3 k$ q2 R2 g( t* w/ P
module_exit(led_platform_exit);
+ j' f+ W+ ?3 O4 `, A% Y, K
) k7 D' v0 D, ]MODULE_DESCRIPTION("Led platform driver");
. Z+ g: Q) Q# M: G& v2 d) O: L. pMODULE_AUTHOR("Tronlong");: V; T& ~1 a: S  l" ?
MODULE_LICENSE("GPL");
# y! m$ R# X! u# v' M* {; s' {( q; \6 e4 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 09:44 , Processed in 0.066891 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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