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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% q6 n+ s4 R3 t% Z#include <linux/init.h>$ T6 v1 i3 w8 a, B# p/ n
#include <linux/module.h>
; M3 u8 T$ J% C% @2 F#include <linux/kernel.h>! D$ k6 f/ ~, C  k' j
#include <linux/types.h>/ h: B' @0 b4 G
#include <linux/gpio.h>
' ?: M  G2 j$ b0 R9 }) d#include <linux/leds.h>1 `4 A3 n. l: U/ V4 \  Z
#include <linux/platform_device.h>2 Y5 u3 B8 a& H2 o8 c% [/ W

8 T; ]2 d: f$ d: B/ c#include <asm/mach-types.h>( \/ H$ K1 [9 J
#include <asm/mach/arch.h>; B6 q5 u+ n: Y
#include <mach/da8xx.h>
  @; P; h* `& W/ J#include <mach/mux.h>
7 C1 `! Z0 n6 Z! }" A
5 H+ A, S& c3 ?. q( }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! `8 b4 v% t  c7 @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ V9 J! b- `# E* S* ?#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ X9 s: `. {$ I  I#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) C( x: f6 E1 x
9 ?3 K' Y' L/ ?4 P: o7 v4 j" c! o/* assign the tl som board LED-GPIOs*/# L5 f5 P" r7 g8 y% ], g
static const short da850_evm_tl_user_led_pins[] = {2 A  @. n" ]2 P: H: c- S' G9 m
        /* These pins are definition at <mach/mux.h> file */
7 f8 q0 z& K* M( b! [0 V: I% @6 }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 o" S& X3 u4 \
        -1: q7 ~% e- i- J1 e6 W( p
};
6 a. y6 ?4 n9 I. v# j; s" h7 m" ^2 u# }% @' x
static struct gpio_led da850_evm_tl_leds[] = {7 [5 ~' Y2 w. }; |9 r( d, T
        {1 U0 H- Y, b% ]) f
                .active_low = 0,
+ A7 o* A- X7 t+ u' }- q                .gpio = DA850_USER_LED0,
; ?8 i: U1 R" q9 t$ M+ _1 ?                .name = "user_led0",) e) s8 w, {  s, i9 e$ X% J
                .default_trigger = "default-on",' P# t% F+ p* B* _. ?7 W
        },
* D6 Z/ o4 L* Q- J5 E7 R7 N5 L. U% y        {
: y2 \( S( V. E                .active_low = 0,
0 d* E: a. B8 Q: w' w7 e                .gpio = DA850_USER_LED1,+ S6 h: V, p+ z4 E! o
                .name = "user_led1"," O+ X+ v; O1 A. l) _( s
                .default_trigger = "default-on",
- C: t4 A: l, X* s/ `" |" q        },
& ^( h4 X& J5 X, T; b' a: T8 }        {% }+ \) A6 G9 Q3 J) M
                .active_low = 0,
- J& m' W3 e: P& S' M2 i                .gpio = DA850_USER_LED2,
, s: c+ T0 S( f, K6 g% z                .name = "user_led2",; u' f5 G" r) V' o, e8 H; ?) j" u
                .default_trigger = "default-on",
+ T( V: K5 ?  @: g6 P$ R        },
6 x) c+ s0 Z1 z( ~, m2 @# s8 ~        {& E9 B, z$ h" D$ j$ e3 g6 d2 K9 f
                .active_low = 0,/ \  p1 u  O, ~
                .gpio = DA850_USER_LED3,
4 n& d7 ^1 Q6 N. I+ d3 G: Y                .name = "user_led3",
9 [0 z; q2 i+ x: I                .default_trigger = "default-on",& r" S; V3 ~( |
        },
* m3 d! N( f4 V' `7 i9 A! }};
( n( z% o8 S7 t* r3 X$ `
' k6 y  o& @1 Z' X; E  c3 Cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {: s7 i/ C2 R3 j, ~) v& Q
        .leds = da850_evm_tl_leds,' g/ w- ]0 F6 W! \* p
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 ~/ G! B  q  X6 X2 |1 J/ @
};9 T! j7 m$ z- |; ^5 e$ E5 V3 c

3 v6 s, E% e  q3 n. L' Mstatic void led_dev_release(struct device *dev). P, g! `9 `& y& b6 P
{5 g, v  d/ E; q( c% @% p
};7 K1 k) [+ _8 V# X7 y; H* n

5 u; D( g( t! Y, ?static struct platform_device da850_evm_tl_leds_device = {
6 A8 {9 H( ]1 S        .name                = "leds-gpio",; ?! Q5 j0 X8 _/ \0 W$ \! h
        .id                = 1,
. k& b+ P/ d+ k% T! S        .dev = {5 I3 D% Q3 d0 d5 h
                .platform_data = &da850_evm_tl_leds_pdata,
, j" \' E  H- I# J. ^                .release = led_dev_release,
* R# n! N- S1 e/ r( P4 ?. _2 {- J        }$ U9 d. Z8 y/ X
};  t& Q2 j, Y6 ~( I; H

- X7 M9 D5 k$ l8 Z4 X* l& y0 Nstatic int __init led_platform_init(void)% q( o' z; y9 y- I: u; ?
{
1 r, F9 J, z- L, h: e# c8 F        int ret;
& r4 b6 M6 w) ^#if 0
2 U9 v4 [, m: P! y0 H. A2 u$ F) z, `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ l  ]( W2 a+ N7 n( E* ?        if (ret)
) B4 s; i) v: y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 A' I3 j5 @5 A2 ?8 s6 d                                "%d\n", ret);
( S) i0 V. u& T2 D4 m3 J+ ]#endif
; W; f2 g$ \# o' s        ret = platform_device_register(&da850_evm_tl_leds_device);; Y9 B# M' q- q; N) `' v. r
        if (ret)8 b! ~& v, ], C: d0 A* m& K
                pr_warning("Could not register som GPIO expander LEDS");
# ?6 P4 D; X4 X9 n  m        else
/ @1 S5 R! d  ]6 k; ^- ?                printk(KERN_INFO "LED register sucessful!\n");
  v: M! R9 ]- }' {- N1 s' T3 a6 y( }+ N
        return ret;
' z) G! }8 A( S4 k6 J}
3 O0 I% h( p5 }1 ]2 `/ S2 k
) ?/ ?4 i5 P( j- g! f% Cstatic void __exit led_platform_exit(void), a( z& U5 r4 |% x1 `
{% A: `, u% g7 ]: Z9 Y& m7 U
        platform_device_unregister(&da850_evm_tl_leds_device);! J. d- q! @  e! t' f  ?
5 I; ?: n- `. N% D: v- F6 P
        printk(KERN_INFO "LED unregister!\n");+ w5 c# K! H" k0 X/ V0 q- u
}4 b9 ]* J/ l" n

, A: g7 F$ y& [8 V8 ?$ \* F% Fmodule_init(led_platform_init);
! `- Y$ k' v$ |0 H9 z1 E. rmodule_exit(led_platform_exit);  n2 Y0 Y, y( K  U

: G( f: \' ^* w0 d+ ]2 b- P/ `MODULE_DESCRIPTION("Led platform driver");' C0 P! f7 b' q6 A: ~# h; P0 M
MODULE_AUTHOR("Tronlong");
' g1 Y6 e5 m9 ?( s; l1 [- \MODULE_LICENSE("GPL");$ O: j! R- o# k" h4 y6 s  M5 v5 V2 K4 K
8 c1 I2 C3 Y9 X2 `) Z/ }  `" M+ X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-2 22:02 , Processed in 0.038887 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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