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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 o3 Y$ X3 |9 c: V
#include <linux/init.h>" ]. l7 n7 m5 ^$ M; }
#include <linux/module.h>
+ k0 i/ K  N" t4 E- G. [4 ]#include <linux/kernel.h>
# r# T4 F  J; \( Z; i2 R#include <linux/types.h>8 Z+ V) U* b' S7 |6 n/ _4 g
#include <linux/gpio.h># Y' \$ P( Z. S+ h/ a9 r
#include <linux/leds.h>4 y/ w  Z: a# O% `0 a( d
#include <linux/platform_device.h>
; x! y) d. ]; C' V, @! B% {7 \( N! v& d
#include <asm/mach-types.h>* I$ B' {: C! S
#include <asm/mach/arch.h>: t) \) G' E9 Z/ J; ?4 U8 G
#include <mach/da8xx.h>% J, k) N$ R# a4 Z
#include <mach/mux.h>' `  d) s/ H: Q" G, q% x* V7 @
% t3 J& J9 D" F$ F
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 w, ~1 s% p- u/ o+ O" o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ V+ K* v. G) `3 u2 c#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# E( i! O/ n7 t5 k8 A) @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)( w( w3 Y/ O8 ]" ^; P+ i- p, i1 [

3 b# T8 U" X, g: |' |! c/* assign the tl som board LED-GPIOs*/8 k9 P9 R. Q, L. m+ K5 S) V
static const short da850_evm_tl_user_led_pins[] = {
' a* E' L& V( f        /* These pins are definition at <mach/mux.h> file */
+ ?5 J4 |5 Q+ P" {; j+ D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ x1 s+ K7 ~0 |; t, Y
        -1
" a9 F# f3 j) R/ [: Z% _, J; r};, `! t! l& u; ^& ?, h
' C7 s! ]- s" v1 N& p3 V
static struct gpio_led da850_evm_tl_leds[] = {# j8 ]8 [' `3 R9 G, v
        {
% \* F! s" I  y- `7 G  ?% H  |$ {                .active_low = 0,6 @- `% C. w+ ~% O( C
                .gpio = DA850_USER_LED0,
& a7 y8 c& r0 u& v, C( k; k% h) B                .name = "user_led0",) ]6 P* z' i$ F3 ~$ h
                .default_trigger = "default-on",
0 |) c: b2 L( q/ \" Q9 f        }," R6 T3 f% z: t' \9 k
        {
. J8 ]) ~( f# g% O! j# r                .active_low = 0,
7 q& x) E3 Y0 Q, T9 H                .gpio = DA850_USER_LED1,
# q  h% _4 w  m; j3 P7 I                .name = "user_led1",
1 X- q& v8 Z3 z8 D                .default_trigger = "default-on",
8 p0 g/ f. Z5 T  i/ z0 Q6 T        },; M- [1 l) {) H: S2 @6 W7 o
        {# B' a& y) h- }- m& H  \4 v
                .active_low = 0,8 A0 O7 s" n. s8 q- P
                .gpio = DA850_USER_LED2,
; H% _( X  b$ B. R# y' J                .name = "user_led2",
4 `4 _" y/ \  e6 h& t                .default_trigger = "default-on",
, p- ?% `# G1 ~4 w        },
' s( @+ t6 p% C  ?- ^7 I5 c/ i$ \3 `        {+ O+ `% d* w/ d" c5 q5 {
                .active_low = 0,7 Q. C: Q* y8 N! V# D
                .gpio = DA850_USER_LED3,) [( j0 Z2 H% E5 h! }: U: t
                .name = "user_led3",
2 r) u6 z) X" A                .default_trigger = "default-on",3 ?6 A& k8 d* @" E* ]8 `% w
        },
2 p0 z& S; ]1 o+ X$ \$ i8 Z" O};
+ c- M4 R: q2 q& E- E0 p
" X* i( ^, }6 c! s- S) C" fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( W5 {2 Y5 R  P7 n; @        .leds = da850_evm_tl_leds,0 w* i" k2 H% ^& ]4 W" n# u
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 S  s4 }$ d2 p4 a) i+ \( O
};  F' d- u  ?4 C2 ~" ?& p9 |8 f. ?
6 V3 e; d, @) h9 j! O2 c& B! J
static void led_dev_release(struct device *dev)  o' w. v  M& k9 l7 `# l% F9 Q* S
{
6 t, t; A6 W2 n: v: k; I. B};
) [1 x2 F4 t3 M- N/ {
8 `2 V9 C, {2 \static struct platform_device da850_evm_tl_leds_device = {& ^+ @/ f: q% I% D2 K
        .name                = "leds-gpio",+ N; W1 X. ]4 ]8 F
        .id                = 1,& y, J9 Q0 W) i: j9 u9 d
        .dev = {
/ j8 L- T  R" v9 d3 L" b5 F                .platform_data = &da850_evm_tl_leds_pdata,* o0 f- E$ e  r! l3 V8 |
                .release = led_dev_release,
# I: P  M# c' j5 l6 i  _4 e7 C        }
$ _. N& G" D3 m  a};( a2 P+ ?5 |6 y1 X  G; Y

; e4 K5 t9 _% q* N8 Ustatic int __init led_platform_init(void)
; |7 Z7 w, u; t' e( {& ~5 G' F* I{& a+ R/ F. l& P+ @' L2 t
        int ret;
- {- q- ^. g/ H& ~#if 0* c7 W5 v2 q) x0 a( T( J* r7 T3 h
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 c6 F2 J  Z0 k) C) \8 l0 z
        if (ret): z0 j9 K) b3 |( _
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; A: }. D3 T: ]                                "%d\n", ret);! |/ ^$ `/ V* G, |: b
#endif
, N& f- ]# H( y% J5 Y9 W        ret = platform_device_register(&da850_evm_tl_leds_device);' s0 K+ K$ _" \4 O0 o# Q: b
        if (ret)
1 F/ ~  a# a& H/ R% Q. G0 z                pr_warning("Could not register som GPIO expander LEDS");4 t/ r+ n7 x4 K* v; M
        else
9 ?0 P2 r6 R& h. o                printk(KERN_INFO "LED register sucessful!\n");
) C. v9 _7 w- U. @2 W/ x. @6 Q" q  E$ W% {  q$ q
        return ret;
( O6 M7 u# X1 a+ c( `. M$ U2 P}
+ J8 ^, |6 Y8 V1 P: ]" A
- U! {0 \2 a" U1 C$ `% }" o9 gstatic void __exit led_platform_exit(void)# ]. D8 Z) U8 k" R& P
{
! O0 l1 q. T# E- m        platform_device_unregister(&da850_evm_tl_leds_device);7 t& Z& a% F8 r5 M3 e+ ]( T; [* n
$ j- [; F; Z/ i7 R  `: p
        printk(KERN_INFO "LED unregister!\n");  `2 Y8 N! @& n: P8 N& s/ S
}
' w0 I, q/ W- K( g' n
6 x$ b% T4 n+ r6 R& tmodule_init(led_platform_init);
/ N7 e6 O$ k+ Y$ ~/ Xmodule_exit(led_platform_exit);
$ p2 d# T: n1 R$ y; Z! m& L( q
1 K3 ^3 A" K7 h" w1 F- p+ W+ z4 cMODULE_DESCRIPTION("Led platform driver");* A' }* {0 i5 q
MODULE_AUTHOR("Tronlong");) n; J' w. M1 p  u  |% F
MODULE_LICENSE("GPL");+ c% R% o2 Y7 X1 Y8 i, f
& s3 ^8 n7 y: Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-3 10:05 , Processed in 0.070491 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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