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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 [- N/ [+ R( j1 I" C, f
#include <linux/init.h>& I" N' I0 o9 o, D$ W' _9 I: }8 h3 ?" k
#include <linux/module.h>7 J$ }9 z- i& R8 I6 h$ L
#include <linux/kernel.h>. q8 F3 ]- l  O6 l6 {
#include <linux/types.h>
6 u! l9 L+ f. o; F#include <linux/gpio.h>
0 x8 f; l7 L% M8 s/ _2 ~7 m#include <linux/leds.h>
5 `5 n! t  Z& `#include <linux/platform_device.h>
1 J6 ~4 j! t$ Q% H+ ^1 K- e/ X
1 M8 m" K- i1 e9 ~/ [#include <asm/mach-types.h>5 J3 u+ e. N2 @# h9 b: V
#include <asm/mach/arch.h>
9 z) b+ t( I- J- H* {( e#include <mach/da8xx.h>
2 `3 g' |! w' _3 l; e, `' }$ u7 \6 z#include <mach/mux.h>
" ?3 L7 ~$ J' f  f2 b$ t  {! [* S7 c" M$ }* Q6 _* x# g0 a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# J0 Q9 e' w+ e2 G6 a$ Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) i* I, x% M, I/ j8 N9 o8 V#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 m2 p! y- l9 p! j# O#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 O0 ?: d& ~) c' _1 l4 N0 b4 p6 U+ m/ h  T7 n) b( k+ l& ]  C
/* assign the tl som board LED-GPIOs*/
+ S- }% Q3 ^* j0 \: J! ^$ rstatic const short da850_evm_tl_user_led_pins[] = {1 X/ C6 d) P# T/ v0 x2 u) r# e+ _
        /* These pins are definition at <mach/mux.h> file */
/ T: j; S( r* m3 l        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 b3 U, `) B+ n0 H- w1 A% a        -1' T* D* U0 {2 }- f3 `. i, A
};, D- l* x: I  _$ l# H6 l) @; b3 R2 L
1 C' V) a0 l$ Q8 w) M( }
static struct gpio_led da850_evm_tl_leds[] = {4 q; B, R- M9 p" H; J& P
        {
! U% D2 v* B5 ^" F                .active_low = 0,. u; }* B2 \8 d1 N( a4 }
                .gpio = DA850_USER_LED0,
$ z  x0 m* g: a7 e3 |& b7 O" _                .name = "user_led0",: ^4 ~& \' p* m& A
                .default_trigger = "default-on",
7 q! \$ J' M% G, z& @; H        },
& u  J7 |) n; w6 ]        {
" r" D1 }, v. m- X                .active_low = 0,
( ^; t1 A6 ]) _                .gpio = DA850_USER_LED1,
8 V7 u6 l; ]( ^) ~0 {                .name = "user_led1",8 o. J% Y8 O' B
                .default_trigger = "default-on",7 m# h1 T& @4 P# @5 W
        },- ]+ j3 g( d$ A6 B7 @
        {0 D5 C2 K0 s& [7 w5 m0 A1 Y& h  b  A; j
                .active_low = 0,- S) y+ K- I5 z: a
                .gpio = DA850_USER_LED2,' v5 h2 N7 H5 ^
                .name = "user_led2",/ D4 M! h3 Z; F7 i
                .default_trigger = "default-on",
" F0 Q% @$ k" G5 V$ t/ {) K5 N# e4 M        },+ O  q" T6 j0 ?- [5 f; G" f
        {
; S: h# `# ?9 A4 B$ {* v! C                .active_low = 0,
1 o6 l  [! @% m                .gpio = DA850_USER_LED3,
' d! `  y; T: \' z- R                .name = "user_led3",5 @, r2 j2 R+ Z) M' w0 z! n  _: G
                .default_trigger = "default-on",4 s' g( D3 c, o
        },1 O7 R# T4 M+ g8 M4 C  P
};
* ?, g* j" B0 W- d3 e, U' P
( _& j# j" @9 b- _static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- Z6 Y# m3 p3 l% y; y
        .leds = da850_evm_tl_leds,
* t; O9 \3 Y9 \/ L6 ?0 G2 @/ V* v: I        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ T$ r& E2 ~; Z& Y' o
};, @2 }. M- N! e& h8 N* ?0 M: I

& N0 ~/ _% \( L$ K7 D$ Bstatic void led_dev_release(struct device *dev): n. k5 m( d9 m! B
{
8 x5 b) W  w+ l6 H6 ~" P, f};" o/ Y! |& r3 Q, N6 P& z

. j# R7 s8 @/ N. y: Z6 B' Kstatic struct platform_device da850_evm_tl_leds_device = {1 w& ~1 Y. A0 V: C
        .name                = "leds-gpio",2 Y4 z2 Z# P+ T% T
        .id                = 1,; D2 G1 d; ^* \' J6 N
        .dev = {
% ]) s5 }- L; N# q4 v5 O4 l  x& C/ c& m                .platform_data = &da850_evm_tl_leds_pdata,
! m& O8 j7 V0 K2 c3 z" G0 a+ C                .release = led_dev_release,
* ^( A9 I2 Q8 r% ]! F+ G9 `# F5 C        }4 {0 Y! u* N2 E$ p% I4 r* v- W0 o  X
};  u4 Y5 }. `. Z( \  m, G/ ]

, @1 n* s8 t8 [* S2 kstatic int __init led_platform_init(void)( ~3 ~" U/ y: N9 ?- ~
{
1 p, _; H" o# I/ e' m) e% ~        int ret;. d- V! S8 j# \% `0 u; s
#if 0
6 `% [' J6 J+ q' z& ~$ |        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% M4 ]: G: O7 r- f
        if (ret)
" e2 p3 C) B/ _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 D/ I2 Q3 f) o9 @0 C
                                "%d\n", ret);# A" e3 |- K5 X2 \
#endif
; j( @# E; L$ v+ k4 e! h5 Q        ret = platform_device_register(&da850_evm_tl_leds_device);$ y5 x- q8 G# P$ e; [/ [
        if (ret)
, q5 z- R$ O- H" O8 T) [1 H( M                pr_warning("Could not register som GPIO expander LEDS");! f4 h6 X4 `  N/ a+ S3 ?# T8 B
        else* l1 Y0 C- {! J3 X  d4 @, v
                printk(KERN_INFO "LED register sucessful!\n");
2 E+ @7 d' o" f( ^5 V9 R4 L4 c3 m: t1 Z  e
        return ret;0 ~* q# r' ?0 {) x* q; C3 i
}3 Y. N' v1 U1 y5 |

1 D/ e* n! ?0 _( U: Jstatic void __exit led_platform_exit(void)  p. Q" p' U, l, K, I
{
4 W; j. D7 Y$ T3 E" C- f* z. d* V6 t        platform_device_unregister(&da850_evm_tl_leds_device);
. Y" h$ `  a" {/ T+ L; r6 L) X  O% c' M
        printk(KERN_INFO "LED unregister!\n");  [, c% c$ J3 G
}- }& x& b& k  d6 }- w* I

8 {/ H3 O# h& ~0 A/ ]module_init(led_platform_init);
) U9 k" ]& n! t" }) Dmodule_exit(led_platform_exit);/ v4 D9 \. i7 [! r
# h: t2 K) S4 E' s
MODULE_DESCRIPTION("Led platform driver");
1 u$ I+ @2 ~% O+ kMODULE_AUTHOR("Tronlong");
" G2 P9 R/ ~, Z3 ?9 \" WMODULE_LICENSE("GPL");4 u5 `7 n1 h" Z- E

, d) Q. G6 g+ `# k$ W8 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-21 01:45 , Processed in 0.041239 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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