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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 N( A: c& Y8 {6 ]/ j#include <linux/init.h>
7 q, K% q& \# L& y& b& m#include <linux/module.h>7 I( V. h& u+ k0 y% `, N
#include <linux/kernel.h>
5 r8 Y% [+ Z0 H3 c; e#include <linux/types.h>' K2 D- t# U3 G. C
#include <linux/gpio.h>
$ x5 ^" B& ?8 \8 w. P# H#include <linux/leds.h>
. s, `6 H! w, [$ s#include <linux/platform_device.h>
' \6 ?: I/ J( @' A- I3 Y
/ x& T! |2 t6 a! E' O#include <asm/mach-types.h>0 ^6 d" B8 I) Q9 j/ h4 d
#include <asm/mach/arch.h>0 n& A- p  E6 ^" ?, x
#include <mach/da8xx.h># M3 e$ _2 x1 @( T2 b
#include <mach/mux.h>" a$ Z; j+ n; v

3 E( F8 M3 `; M- j/ s4 J( T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 [# M9 y- v) J9 X5 d; Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 k" U  k, f2 V1 {( B( |
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 M6 h9 \' G7 Q5 A5 m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)# d0 M' S& g. q, K: P) K- h

7 X2 c7 n1 i3 ]  z( h$ G* R/* assign the tl som board LED-GPIOs*/
" M2 v- s) t$ y# {, I. Astatic const short da850_evm_tl_user_led_pins[] = {
5 j! L* L7 O5 o        /* These pins are definition at <mach/mux.h> file */  f9 g  x/ Z. [) r: X% A" i; v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" I4 O3 o4 y, [- [! B        -18 s) d$ _3 x0 x1 V
};( x; F5 R( D; N& V$ H0 |
2 l+ k8 T) G' U1 q0 `- r9 V, V. W
static struct gpio_led da850_evm_tl_leds[] = {
& H* C' p! p/ r6 h+ [        {( J. L3 U6 |" j5 h8 g0 N4 k
                .active_low = 0,
9 i" W+ l4 b' V6 E8 I/ }8 n# S                .gpio = DA850_USER_LED0,% B7 B- ?  |; ^- h; i8 a
                .name = "user_led0",1 T1 v, |" d; b, M# v
                .default_trigger = "default-on",
! }9 W$ I* e6 o# @2 a. t5 J        },
6 @% y+ C) W9 i. ~        {2 u  j2 n6 y& J) P1 K
                .active_low = 0,
8 S. |: u) ]2 u9 G" H                .gpio = DA850_USER_LED1,
6 e" q4 I  U# N7 F0 P- N                .name = "user_led1",' v* T- o" n9 J7 Q( Y( C7 ~3 ]
                .default_trigger = "default-on",7 e! ?$ Z; X7 e9 s, _
        },& V7 u9 N9 n6 H7 a4 q8 ~
        {
) C3 {3 r: g+ O' m# Y                .active_low = 0,
6 A6 g; N! B" _9 M+ v4 s" U$ t                .gpio = DA850_USER_LED2,$ H2 @8 D, I3 }$ _% J
                .name = "user_led2",
- b( G+ f' }' [( p$ U) C" r# q; v$ ]                .default_trigger = "default-on",$ g1 _) ^2 j8 o9 r1 J! a4 d
        },% r( ^3 W. N+ I+ ?
        {
* B4 `$ m' f* q' K2 y2 W; m* `                .active_low = 0,
7 I$ c% m4 t8 H5 q  {; W5 q6 o                .gpio = DA850_USER_LED3,  Q7 ~: P4 r' u4 j5 u
                .name = "user_led3",  n( e) E& r. O2 k2 R3 s6 H4 \
                .default_trigger = "default-on",' W9 ~/ x8 J* i2 p
        },
& i4 v3 B7 y6 _( q3 v& m5 T};& l& P0 f3 I$ ~( E1 x
' H  N6 e; V9 `2 V0 Y! C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* [0 t; ]0 N* z/ z4 H3 Z- `
        .leds = da850_evm_tl_leds,
6 j; x3 ^* W+ }& N( C        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," L2 B. T2 Q2 ?: v- S4 l# B  a
};
2 @0 f: S  \+ f! ^, Y
2 F4 {0 S% b* r" x" a. o$ Qstatic void led_dev_release(struct device *dev)
$ t2 h+ @, ~: t) b8 _{
% y( ~2 @9 k) l  U};  Q" [% Q; W- u: v! a

1 @0 [0 s8 D  Fstatic struct platform_device da850_evm_tl_leds_device = {
+ X( b. E3 C) s7 @6 A        .name                = "leds-gpio",
5 ~1 Y: d3 R8 J+ t. t        .id                = 1,+ h& O, L% e8 R3 k
        .dev = {
0 b; I% Q1 s5 V' M! n. I& k                .platform_data = &da850_evm_tl_leds_pdata,1 p3 K4 T: ]! N' g, A
                .release = led_dev_release,
6 k& L( v/ v8 y4 U- Y        }0 e) e' r" v% W* q- x2 l' w5 P( G
};, K) |- |% a" y* c9 W4 Z, a

% X( v  w. b7 j5 G6 C2 pstatic int __init led_platform_init(void)6 z, ?) \. O) K) q+ ^6 d/ C( q
{, b. q% @/ ?- b
        int ret;
, n1 m/ b! w- V! H, M( U; E3 A#if 0
2 o( M$ l8 Q: W6 |" x: f* G4 N2 L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 \( M% `: v9 V, m        if (ret)' f& t0 P: r  B0 s3 j. |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; c# R+ D2 `0 N                                "%d\n", ret);# j, [( W0 m- O% V
#endif
3 L# ~. z+ F. Y2 v0 W+ k2 |        ret = platform_device_register(&da850_evm_tl_leds_device);+ g; a% H6 `5 b
        if (ret)
2 `0 R) D$ n% a7 x, H, e" J2 {7 E                pr_warning("Could not register som GPIO expander LEDS");6 e+ U9 `+ B: ?
        else
4 O% D1 s% p4 }8 X5 g2 l4 V                printk(KERN_INFO "LED register sucessful!\n");
9 u) Y( V* b) L- B
  [+ A, A0 N" b- Y# N# [        return ret;
8 |( H/ y' _! p& w}
3 Z8 ~7 D! |9 o- M& p- A5 |% x  d
static void __exit led_platform_exit(void)$ m% a; G( J3 b
{
8 e5 \# L* D1 k3 M# O5 Q& {0 J        platform_device_unregister(&da850_evm_tl_leds_device);( [& M( C3 ~9 K4 ^8 _! N
. n! t! g- Q" h4 p
        printk(KERN_INFO "LED unregister!\n");2 s& r& b- x7 K7 S5 x0 n+ w
}$ E( _+ ?  c2 ?9 H
4 P! i& F6 h  R, f. j
module_init(led_platform_init);: U9 H- c7 o9 o! G
module_exit(led_platform_exit);
: _4 d1 F4 H  s1 e) n8 `: s
1 \" `/ u& A. A& }MODULE_DESCRIPTION("Led platform driver");
, C& [& b3 l$ ]( R1 \MODULE_AUTHOR("Tronlong");) @& T- X! Y8 a$ `2 T$ E$ }# a
MODULE_LICENSE("GPL");' q  U* c. O6 v. l. Z6 W. t7 c
9 }$ z: A  A7 W" C7 e' m+ a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 23:36 , Processed in 0.038987 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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