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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' E+ K& J# p( Z+ I
#include <linux/init.h>  g# \* z$ \# \" X. K9 ^
#include <linux/module.h>
6 |1 n  H- |0 V% C#include <linux/kernel.h>
/ c* z: q; V0 `/ ~) H( x#include <linux/types.h>
: ?7 s  s  X( x#include <linux/gpio.h>
4 R: o; f4 L3 \0 u2 y4 p! v( n#include <linux/leds.h>( U0 l( e' D2 E9 _; I
#include <linux/platform_device.h>
1 u( u5 q4 d. j) p- ?3 \
0 C7 C3 p% ~# U; u' b#include <asm/mach-types.h>/ u. {- ?, _, E) ^3 a5 A; C
#include <asm/mach/arch.h>9 e; ^# Q1 `2 t. p, v0 }: e
#include <mach/da8xx.h>; }5 k  _+ d. C' \8 i7 m. j1 h
#include <mach/mux.h>( M3 D. [$ E8 J2 e/ Q
! v0 D6 n& t/ k- w+ v; j
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
# \: l2 X& _: o* k#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, ^/ `# j* e2 g4 ~. Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 G. L. b7 g+ M! |1 i9 \#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 I; }$ A8 C! |/ i/ d/ L$ A2 K. U9 v. S7 ?8 Z" g
/* assign the tl som board LED-GPIOs*/6 n% @: p5 I' H- F/ K; |
static const short da850_evm_tl_user_led_pins[] = {
6 T: S: l: _# ^, b$ j        /* These pins are definition at <mach/mux.h> file */' O8 z: o  r( s. K3 }7 e" f+ m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: v& H% L8 I: P, @6 l        -1
& h% ]/ ^9 N# e. U+ K: Y! L};
. ?* ~( y4 j" x; _, T
- H) ^( I: \3 }: {1 Pstatic struct gpio_led da850_evm_tl_leds[] = {
4 k+ A- X; \& A/ y        {$ p! M) ~& X7 e4 q. r
                .active_low = 0,4 \6 Z9 V) d" O
                .gpio = DA850_USER_LED0,3 X. _) [/ r+ l; e9 C9 f9 ~7 J
                .name = "user_led0",
$ R+ ?. p7 O3 Z! o# |& Q5 i/ c) B                .default_trigger = "default-on",
* ~" l" C3 n$ Q8 O! o        },
2 u; D: ?( O- k1 F0 v        {! V- u3 `5 _; @' l: f4 t7 }
                .active_low = 0,
8 n) N$ U% M- s( G) R3 k, k0 b                .gpio = DA850_USER_LED1,
) c3 l  N/ ~# ~2 ?, \5 ~! v                .name = "user_led1",+ q) y5 w0 N5 o  P4 l) r/ T5 s
                .default_trigger = "default-on",; @& B* Q8 H" C, G; R! K* X4 a- U
        },
! F5 p1 ~: X; D* v6 G! o. n        {; e  y! }$ U. a1 I, V6 t* Q
                .active_low = 0,
9 E& [" W. ?8 N- Y/ R5 C" b% h                .gpio = DA850_USER_LED2,3 g2 D+ R2 {/ A
                .name = "user_led2",& `) N* y7 t- M- X, s3 s% A
                .default_trigger = "default-on",1 _9 X' L$ X/ K! V: y2 ^( j
        },
9 T0 b+ I9 U, N. n        {% a+ n. F" |: v1 D9 u+ U' x
                .active_low = 0,6 Z, K# h3 z0 j
                .gpio = DA850_USER_LED3,& e) F' K1 T) Y" Q
                .name = "user_led3",
0 B) V8 m( R- J3 a                .default_trigger = "default-on",
' H5 L+ O9 H1 x- G7 T  d        },
0 b: X1 g' s& U# z2 W};
1 b; P# s& s# N8 J
. H1 s  a4 B0 W; B% ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( M/ e0 a: K8 E9 [7 X        .leds = da850_evm_tl_leds,$ ~5 ]& a2 r- o; X- u+ |+ \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
2 F3 w* z% }4 b0 I0 b) ?};
* M+ p$ l* o& q0 @3 C" b
2 ^3 U8 r% ?- A' F2 lstatic void led_dev_release(struct device *dev)
) n' P3 W) \$ l! u{# j8 q8 Q2 n! l6 L! g. d5 s2 @
};8 o6 M) l& i. ]( m9 p. T

% O) P* C/ {2 Z6 Xstatic struct platform_device da850_evm_tl_leds_device = {6 R/ ~9 u+ d4 F+ ~4 n8 k7 x
        .name                = "leds-gpio",6 C9 l0 ^, o. Y
        .id                = 1,
8 Q0 g7 d3 B% T, y, X5 |& \; v        .dev = {
. e: S. y; V  ~1 j* C/ O                .platform_data = &da850_evm_tl_leds_pdata,
7 V4 u8 G( ~2 l* x7 G  k0 x                .release = led_dev_release,& M* q) ^. ^4 @4 V2 k3 I8 T4 f! B
        }
# K+ R2 t% Y$ t* A$ W+ A};
8 t: G6 w% O2 T) \+ T2 Y( Q. W& E0 [: |' o" |
static int __init led_platform_init(void)  K5 k; ^* D5 y
{  D& ?3 z! n9 D3 V/ l
        int ret;  A$ r# [$ C4 M1 `7 `$ K7 j
#if 0
# {( G" t2 m; u: j        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# G# ~% A2 U- Z4 ~$ A        if (ret)+ s6 p( c6 K  a$ g1 ^+ l0 Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 x% ^3 b" v- y8 v9 z8 e
                                "%d\n", ret);
9 H2 i  N" \; Q5 X#endif
4 L/ ?' b1 y, G8 e' D- g# g8 O( c        ret = platform_device_register(&da850_evm_tl_leds_device);
- R1 t) N0 ~/ e6 k( \1 }- H" g5 {        if (ret)7 d& r9 p8 E+ K( E* T5 H0 X
                pr_warning("Could not register som GPIO expander LEDS");% K, m: I' a: }, ?2 x7 M0 L
        else. l, l2 d6 g+ K/ z
                printk(KERN_INFO "LED register sucessful!\n");
1 C) Q& o; |3 v5 q6 A: j3 l" |1 [9 N% x: e, _7 z, k2 o2 ?4 Z
        return ret;
! @4 W' @* ?: B$ s7 D6 D}6 p7 Z' k9 p( `. r$ V8 F7 J/ G: q# ]" l
2 k* v/ g! Y3 N0 i( V
static void __exit led_platform_exit(void)6 w7 }  b9 T4 g- i  Q6 [
{
0 M9 ~. T7 k3 ]. O        platform_device_unregister(&da850_evm_tl_leds_device);3 p/ }8 h- U& n* u5 M

, J+ g7 S' C) P  `        printk(KERN_INFO "LED unregister!\n");. n, M! _# O5 J8 z7 ]/ [
}- C2 i: P4 t  ~

2 i# r2 s1 O6 m/ Cmodule_init(led_platform_init);) G  @- F$ s6 j+ T" x5 _6 ]
module_exit(led_platform_exit);3 j2 s& U9 h8 o

' ]9 [% q+ a5 }) T3 J: xMODULE_DESCRIPTION("Led platform driver");6 x' Y/ L& P$ V, A, W& K& `
MODULE_AUTHOR("Tronlong");
& L+ V: X/ T) [* W4 ?  N  xMODULE_LICENSE("GPL");
* }) [& r/ ~# u4 `! d6 e
6 Q, }% ^- f. r5 ~
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-2 21:03 , Processed in 0.052563 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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