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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 i+ U' D" V: c3 f2 i  e! I  E#include <linux/init.h>
, J) n2 W: B* o% V+ l9 E#include <linux/module.h>
4 M+ Z$ i" W/ V( k. S#include <linux/kernel.h>
( e7 g! T% n" h& i' ~#include <linux/types.h>& S. o+ a3 m3 _7 I5 d
#include <linux/gpio.h>
0 g7 K. ?8 O+ P3 ?% b( I$ K#include <linux/leds.h>
( i$ f; n" k0 A* v3 c) g1 ]#include <linux/platform_device.h>8 k# \/ C) {4 n: G

) X% _" g  i; c: ?5 y1 P6 \! l#include <asm/mach-types.h>8 U  K+ v7 J) g" k5 q, K/ h! ?% o' g
#include <asm/mach/arch.h>
2 _, [& n" e: X. w  C  B/ J#include <mach/da8xx.h>6 B1 L; O9 S4 L, F: X" Y) u" k# |. h
#include <mach/mux.h>5 B" Q5 t! m) e* ~; |3 Q% ~3 P

2 i0 B: Q9 i  Z# x" Y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" a; U3 v1 y- F. O. g! p) A- Y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ X8 M7 @5 v$ O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" f: t6 e+ E+ `0 t. s' O3 e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" f8 J0 ~1 P) _( ^
' g0 G8 Y5 T4 q. I+ R
/* assign the tl som board LED-GPIOs*/
$ o1 |9 H& {$ d3 Cstatic const short da850_evm_tl_user_led_pins[] = {
* E0 ~) [+ a3 J2 S: {        /* These pins are definition at <mach/mux.h> file *// H7 b2 c" H* V. K& Z1 i" @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% K4 [: G3 f# M% Y; R
        -1
* Q# d5 P, L" q4 N7 n6 }};
, \4 k2 h9 {; [) Z0 _: ~* }" I- j; |5 A2 d" N1 G
static struct gpio_led da850_evm_tl_leds[] = {( m" F% Z( F/ u! S( Z$ t. z
        {
! z" D  p, O, i                .active_low = 0,
6 L) m' M" l$ E+ y9 u" p/ }# H/ W                .gpio = DA850_USER_LED0,# T* o. n# |  }) B$ S; Y
                .name = "user_led0",
( c  w. T- [7 l                .default_trigger = "default-on",
0 v" A' h  X! M9 \        },
$ o" @7 p6 T" T( D7 G  P, D        {
1 H# y$ u, J0 D1 D' N$ N                .active_low = 0,
0 Y. t, q/ |9 J; M0 S: Z                .gpio = DA850_USER_LED1,/ j$ W" ^5 m" K% c; G. s
                .name = "user_led1",
/ b' }; l( M& K8 D                .default_trigger = "default-on",/ q* N& I" N8 l' c5 n( V( H
        },, j% \7 _$ w8 E6 }2 e$ ?- f. f4 o4 Z
        {
+ u( I$ H: Y' O                .active_low = 0,
" v! W/ n. i) T! c% s/ m- n                .gpio = DA850_USER_LED2,
3 G9 F+ @! M5 A5 j                .name = "user_led2",( B* V! }" M! ^1 M7 \# ^
                .default_trigger = "default-on",
. k% C1 d6 }6 q: ?8 p& L. }* m        },7 o+ K& Q" P1 K3 N9 z3 J
        {1 p/ E, H& r% ~$ v2 H/ q
                .active_low = 0,& U3 i, l, |  q8 b! l# o. u. Y
                .gpio = DA850_USER_LED3,
. n% j+ i, H  F+ H( d                .name = "user_led3",' v+ V2 B& O# u% `8 n8 e! K
                .default_trigger = "default-on",
) K1 I8 C4 d7 L7 R        },
; g/ l7 T# T. _" s- h& m};
9 x$ W$ m$ Q# T3 }4 g4 B: B+ _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. F. I1 N$ q4 }1 _( ?3 |1 Z; Y) m        .leds = da850_evm_tl_leds,
! F8 f+ L1 k- J  Q2 o6 \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# M, y3 y' Y5 c% U# j3 X( w/ u
};
0 J0 h6 r, u7 O4 @  ~0 ^
9 b, U2 d0 n: ]% o- f! Q7 J: Fstatic void led_dev_release(struct device *dev)
: _1 `0 u( _& X/ H1 v: G2 n{: T3 ~/ O: w& \* V2 }
};( D1 I& M; s( P% k& Z9 g

& B3 I" z# P. t! g2 Q3 ?static struct platform_device da850_evm_tl_leds_device = {  U6 C1 t* H+ x& j* N9 Y+ m& ~
        .name                = "leds-gpio",
: E% H% c2 r  {7 v  |$ W' L        .id                = 1,5 H8 W. k+ O; R6 Q4 N$ T: p9 g
        .dev = {
; Q9 E7 R  g3 V/ y                .platform_data = &da850_evm_tl_leds_pdata,
/ O7 f: T3 I1 n/ G1 J+ c( B- J                .release = led_dev_release,
( ~- W2 v7 C) \$ M        }2 @4 K" q* u" l7 r7 h
};
. w; j( k# R0 l8 P  T1 ?8 n) L
$ V) [1 A9 b. B* K+ f- Q! Z0 Qstatic int __init led_platform_init(void)1 \3 q  ^2 w! P. J0 V
{5 M- |! Q& B; b. D! Q  N
        int ret;2 I6 V5 ]5 h- [3 m
#if 0
" [( p+ C( a+ w7 m        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 v+ b5 J  H. r, i  B
        if (ret)
4 h7 r% @+ C1 K7 w% |( c! J                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 Y/ M1 b+ e8 V                                "%d\n", ret);
& W) P4 y# n# t0 D( J#endif  N/ o* U8 v; ~2 p
        ret = platform_device_register(&da850_evm_tl_leds_device);
3 p4 u& s; V/ U6 }        if (ret), E, l8 t( v, M- D  V
                pr_warning("Could not register som GPIO expander LEDS");
8 _  R, {* L; U# O/ u        else4 t4 m; h! q6 w6 y: E$ \% q, P
                printk(KERN_INFO "LED register sucessful!\n");0 X5 r/ o; V: w  Y: H
% L3 h9 G' y8 `8 H% T
        return ret;4 T4 m: j$ x! y9 ^- W' j) V, W
}
9 q' c) a4 ^% j7 \/ i0 z) m  Q; \- b; I5 [
static void __exit led_platform_exit(void)! s) \4 q1 `: E8 |
{
- t2 E# w$ U$ _2 |8 v5 I7 h        platform_device_unregister(&da850_evm_tl_leds_device);
/ }. j' f0 M9 w5 j7 ?/ {. b8 u1 X9 }
        printk(KERN_INFO "LED unregister!\n");
/ E  r! _& c$ U2 ~1 H' Z) p0 z7 L}
4 [7 f3 E# ?/ O- i7 S+ Q* V+ c  G4 J; M- D* \
module_init(led_platform_init);
) [. Q  Z! J' l. Nmodule_exit(led_platform_exit);& p* r0 O8 B* d, I3 ?" l1 \! Q# j# |
4 F2 W' m* \7 p. r$ k5 L  P
MODULE_DESCRIPTION("Led platform driver");5 O" F. o: t5 @# |* L  R
MODULE_AUTHOR("Tronlong");/ K$ k# e% c3 s; r' N
MODULE_LICENSE("GPL");
. K: i7 c+ Z$ Q; K) t$ Y& N8 ?& K' O/ Q  [% J, o: F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 01:19 , Processed in 0.039277 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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