程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% P( u, ~! \- F+ M2 ]
#include <linux/init.h>
4 s  j2 C6 L6 @3 s( c#include <linux/module.h>
0 o6 A4 T+ d! [, d4 ^9 J#include <linux/kernel.h>" p8 B2 f2 H5 L. s8 k/ z3 c
#include <linux/types.h>
1 \- Q3 J  t/ L#include <linux/gpio.h>3 N- L7 y4 g( i7 r( V# j3 e) W
#include <linux/leds.h>
8 Q0 k# [" D4 u4 x#include <linux/platform_device.h>
6 c1 Z( r4 Z2 `, [6 L/ I0 t  s6 C0 [6 c! v
#include <asm/mach-types.h>" @4 l. O' _7 P2 p. i, X# O* }
#include <asm/mach/arch.h>0 g3 W; w8 a% a5 P/ G
#include <mach/da8xx.h>
! c- {+ w; E7 T" Z! d#include <mach/mux.h>. a0 s0 v1 u% J' W) u

" Q  }) X, }: }( v% o) H#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& j6 M0 g  G* ~( r3 z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% j6 k$ x0 d9 J$ ~$ q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 d' I2 M6 P  h; I' T' N+ }6 S3 X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)& t  M! D! m  r1 t3 V  u
2 R* O* d; R3 `- N0 v
/* assign the tl som board LED-GPIOs*/
6 K8 N8 f( `/ S/ ?6 xstatic const short da850_evm_tl_user_led_pins[] = {8 E/ z6 x! W  v1 [- F
        /* These pins are definition at <mach/mux.h> file */
; W. \6 T4 g& t  K8 a2 O% y  ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ C9 D3 L: C! ]/ U
        -1$ P5 d! S/ I7 \
};
- e3 l0 M( V) a* a5 a
5 a0 {( Z/ V0 t: }6 O9 gstatic struct gpio_led da850_evm_tl_leds[] = {
4 O8 n, T3 y; }1 j& w        {
2 h9 B( t7 h. y, ~                .active_low = 0,
4 q0 D5 r1 j1 p  P  x                .gpio = DA850_USER_LED0," v  @# Z. W7 p0 E) K+ Q
                .name = "user_led0",7 `3 w, x' c% ]3 ?! `, H
                .default_trigger = "default-on",1 `- p( `6 Z6 P. ?4 T5 ~
        },
# i8 e- K; E1 A2 S+ }" s1 S        {
3 L8 b* ~: B/ c/ Z% T' H4 N0 C                .active_low = 0,
, w* A/ R) H) P+ E  p# W- \                .gpio = DA850_USER_LED1,; D/ N3 U+ o( J0 j( M0 m6 s1 C3 {
                .name = "user_led1",
/ `* b1 B" ?3 S6 Z1 H3 L                .default_trigger = "default-on",( ?, T! n7 _( J0 N+ C; o5 Y' }! X5 |
        },
; ]5 i( |8 A0 {: s% o. t2 u) s        {
# K) x3 s5 B) e4 ?' Q                .active_low = 0,! m  i" K0 I) X1 C: Z, a
                .gpio = DA850_USER_LED2,
1 I0 I6 k0 U! }! y$ H                .name = "user_led2",
* A+ [' v9 A7 E1 v                .default_trigger = "default-on",7 _0 l3 \  _& ^( O
        },8 X1 E8 T: ^/ d% z2 u: P5 b
        {
) m5 `6 E8 w, z$ N# t' W3 \                .active_low = 0,
/ l* N. J1 F' I9 X6 p. J+ Q( a: w                .gpio = DA850_USER_LED3,4 R- T3 z' X. f8 o9 b
                .name = "user_led3",
' k, w# t" S1 A" Q                .default_trigger = "default-on",
6 L/ x) G) ^- ^        },
$ C7 O- J' \" X; ^; y8 d};2 i/ r" X6 ?5 }$ Q" Z) d
9 D5 U' @8 K4 V- E5 d, I" f- o
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% k4 J, Y  s% |  Q( g3 C! ?( R: D        .leds = da850_evm_tl_leds,( w0 z- k! ?7 d
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, h+ x' g6 ?, s, X
};
+ l9 ?( L0 f# z$ Y' k- X( X1 d: t1 _6 z% ^- k
static void led_dev_release(struct device *dev): V4 p" a' u4 t! {: l
{$ y& G+ C) c; r; P( O5 _) O) s
};
! h# P# V9 X! Y! F% R0 L6 t0 f9 k0 ]- N& h$ _; j
static struct platform_device da850_evm_tl_leds_device = {
1 ]& W( s! B: F: x6 U8 g        .name                = "leds-gpio",. g0 j# H+ y- c/ ]
        .id                = 1,
1 Y: l& q4 h6 ^# e/ ~$ t$ g        .dev = {& h. r$ K6 v5 H2 I7 E
                .platform_data = &da850_evm_tl_leds_pdata,
5 l! V( q7 B- k: S                .release = led_dev_release,
4 z3 a" g# |% }        }# X3 Z' v5 M; ?! b  o/ E: {
};
1 s6 n4 }) W0 D0 N3 \
; W5 x0 C: Z2 }4 W! ystatic int __init led_platform_init(void)
' P) x8 C1 _1 i: E{
* q+ O  p/ X- h2 }* c# w        int ret;
; J( S) ]) E9 a! T; ^#if 0$ ]+ G7 p( F- l2 ^' O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 Q2 y. d5 f( J# J0 x" q2 a
        if (ret)3 q' B4 t9 B+ O: o6 J
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
: B8 H$ ?6 A0 a2 y+ `& R1 J                                "%d\n", ret);+ l( L+ a, r/ I& z) F/ K+ p
#endif
9 k( O4 d& o. ~# y; O* ^2 T        ret = platform_device_register(&da850_evm_tl_leds_device);
) D6 z- Y' }5 ]& `        if (ret)
1 z# X2 _  \, T- Y* `- G                pr_warning("Could not register som GPIO expander LEDS");
# V9 ~0 S2 F* C0 v        else) w) [, D5 s! z4 I9 o
                printk(KERN_INFO "LED register sucessful!\n");7 J" S- d/ O( ^( |

0 s. x4 x. u- k: l( n        return ret;9 X' G% e  m0 F3 T) p! W& U
}3 n9 b" P" z7 H" o

1 ?! U6 ~& _* K/ _$ Vstatic void __exit led_platform_exit(void)
# e/ N2 T- N5 _$ ~4 R( Z5 Z{
1 S; C0 ?$ |0 l0 c, E8 B# r" x        platform_device_unregister(&da850_evm_tl_leds_device);
5 l, |8 S/ X% z6 T5 g
9 D) h+ I5 S+ O4 n. U6 _        printk(KERN_INFO "LED unregister!\n");9 K: W2 I0 R( o  h
}
, @" u: i# P' L" X" Z/ B7 ~4 |# `. S1 W$ u( B* p7 L" S
module_init(led_platform_init);
7 }' q; P) L% m& ^0 t9 a* smodule_exit(led_platform_exit);: c1 M0 N2 U. R% n: t

4 u8 s0 Q2 n4 e1 r4 I& L' jMODULE_DESCRIPTION("Led platform driver");& }+ G$ {6 J& {: [1 ]8 O2 ^* J
MODULE_AUTHOR("Tronlong");
# F4 {, M0 p# RMODULE_LICENSE("GPL");$ z" g4 X4 h! V$ I

) [$ q2 `  K, ~0 L$ j1 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-19 07:40 , Processed in 0.036388 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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