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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& Y5 b' ?' v, Q7 W#include <linux/init.h>
( U7 Z& T6 s. v( z, Z0 n#include <linux/module.h>
% p) R0 R/ M6 N6 J#include <linux/kernel.h>- f, u0 A* [) i7 g1 T& u
#include <linux/types.h>
. d* H7 m8 B, S  @: U#include <linux/gpio.h>. f6 k% E* Q7 p' M1 [4 _8 f
#include <linux/leds.h>. u* d3 X  x" |6 n% P
#include <linux/platform_device.h>  W: a6 l0 z% {& v% R
, }. ?1 Q: a9 d: |$ g
#include <asm/mach-types.h>6 v6 t# z9 c: a" ]# n
#include <asm/mach/arch.h>
- Z$ l5 M- f% M$ H" d6 m& \#include <mach/da8xx.h>  F7 }2 w  i' ~  R: h' }: i
#include <mach/mux.h>
8 E/ b3 R/ D0 d3 j$ T2 n" A+ f# J- L2 i2 t3 ~. Y; N7 P( ^
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)+ o3 k2 U* ~" @' B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
8 `% Z5 A, q& Q- m4 F* @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 }  C0 w$ H! j) u3 _# r1 ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' [1 O. j, v% A/ C
5 R1 ?$ _" P. v+ D. x# ]5 P) H/* assign the tl som board LED-GPIOs*/
. [3 z+ l$ V1 p0 cstatic const short da850_evm_tl_user_led_pins[] = {
6 x7 c" i6 h2 ]4 E/ N, d- c        /* These pins are definition at <mach/mux.h> file */) z& [# D& j* z$ }6 D. [
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 ?; x; ^& S8 Z( @. F; g/ S1 v        -1" F5 |3 R$ c. S0 H. |8 Y5 b. F
};
  A. m) o& I" d1 U. A3 |
% _' [% w8 _0 k0 u. M; vstatic struct gpio_led da850_evm_tl_leds[] = {
5 O" X+ C6 |- A& s( [        {9 X* x" @9 c) J4 F5 i
                .active_low = 0,4 L( W" b7 b4 O2 D
                .gpio = DA850_USER_LED0,9 d/ V# Z8 k& m; a, b
                .name = "user_led0",
4 A( u. n: q" G2 p                .default_trigger = "default-on",/ c( N/ h! d+ v, h8 U
        },( D0 b$ t4 [8 a- I
        {5 q# I; O% {( ^' m& }! ^1 j0 _) A" y2 ~
                .active_low = 0,$ m; d$ K' L+ ~6 F
                .gpio = DA850_USER_LED1,
2 y9 O' N3 ]( ^& }0 o0 j                .name = "user_led1",1 i$ I6 T% c" N& I. `( O7 K
                .default_trigger = "default-on",' f+ W7 \% c. W% Q: K
        },7 Q/ z, A+ t" v7 H# B4 V
        {
& r* n5 t4 D# ~0 Z8 e$ w8 ^% Z                .active_low = 0,
8 o1 }7 p3 R2 V5 @6 I; _4 u                .gpio = DA850_USER_LED2,+ r! d/ \1 L; w" I& W
                .name = "user_led2",
6 h* w* o, B! a7 C0 ]; b                .default_trigger = "default-on",
8 n* ]1 a& O0 T+ o2 w        },
& W0 q& F- }8 V9 P% |' C        {
. g8 D0 @1 ~0 F5 Y                .active_low = 0,
$ k8 E% `! U) S, d$ }+ m% x                .gpio = DA850_USER_LED3,
" ~; G& p4 ~' x2 K( d  h6 h* C% Q  p                .name = "user_led3",
4 F* K0 m1 S+ C0 f7 r; D                .default_trigger = "default-on",4 I( J* p+ P6 m2 x( ?4 \# h5 f
        },9 i: U( X- E5 l# R8 o- B! L4 }
};
* q  V  \1 _$ z- r& g5 h# D" [" O" ]# g. p/ |; S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' f1 {6 W) o# V/ r* l' N+ W
        .leds = da850_evm_tl_leds,
+ L5 g' \& C$ y4 R+ Q1 z        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 o$ r3 B- K  B' z0 u- O! K7 I};
3 p  ~  _5 n9 E/ Y: b3 t; I+ v. a' |& _5 ?& M
static void led_dev_release(struct device *dev)" Q, H- p( O, W" @
{" N) B* C% D4 `# a9 x0 Q1 }5 H5 l
};
5 e- Z" H6 t* T* p/ u8 r. [! v9 l' T
static struct platform_device da850_evm_tl_leds_device = {1 C8 n5 m7 L( q6 T! U# p1 ~  f
        .name                = "leds-gpio",
6 T+ q, k! {7 f5 U        .id                = 1,
. y$ x6 ]2 o" p2 T& c" u3 [0 m        .dev = {
$ l9 g2 J" D& Z) Z4 h! \                .platform_data = &da850_evm_tl_leds_pdata,
9 y) _  a- V; }. @( m                .release = led_dev_release,
! F  X8 \" a5 m        }
; ?8 p; E. A5 ~; i+ m$ H% n};
( i' C, N8 Q0 D, |- q- n8 r7 n' c6 H  f; ~, h7 k+ D1 `
static int __init led_platform_init(void)% c/ ~1 o5 z. u' L) K7 l. k/ \2 I
{
: q0 T+ a9 W- E1 H        int ret;( E, ?. [* r& Z( ~. x/ \' W' V- l
#if 0
/ w% a. o/ K4 |2 N5 n# u        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; g! G* F" Q, k- _/ O/ m0 h' s        if (ret)4 m( {7 {  ^/ x. w4 ]6 f4 @/ N2 P+ n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
2 c3 h5 a# g# A+ W  F; @                                "%d\n", ret);. ]- S2 o5 @( D+ g4 e. f0 h! {
#endif
# \/ ^. l. m- x8 U. L  C3 Y& E        ret = platform_device_register(&da850_evm_tl_leds_device);
& S3 z: R6 H. p" d4 f6 J; X        if (ret)- `1 y. ~+ ^8 K% Q( m
                pr_warning("Could not register som GPIO expander LEDS");
7 y3 q5 V/ j% J! P: ]1 K        else* p( i0 A1 p# w
                printk(KERN_INFO "LED register sucessful!\n");
+ U: O& C  B, ]/ F8 \; {. P7 e' {! W  r) u& Z
        return ret;1 R/ t+ L. d+ m: p
}
- F7 B+ U, Z% E8 d. T1 e$ z. T% y% ?0 g
static void __exit led_platform_exit(void)( A4 G; o7 N% S6 b/ i# S7 Q: Q
{
5 x6 m+ E. P+ C5 v        platform_device_unregister(&da850_evm_tl_leds_device);6 G; t4 a' v8 K0 F0 e
* ^' O+ p1 O" S! Q1 _
        printk(KERN_INFO "LED unregister!\n");9 \5 O7 O+ q$ d& F/ R$ s& D% X! ?
}
& U% r! a5 q0 J( ~6 l, d2 p
: t: S: B9 f* D8 cmodule_init(led_platform_init);
- {6 a6 n7 W' |7 W( r4 gmodule_exit(led_platform_exit);
, X3 d, s+ y: n, f! ?; r) X$ E7 D" M5 q* D- q3 F0 t
MODULE_DESCRIPTION("Led platform driver");
* r' d% K' S7 Z% ]: Q2 fMODULE_AUTHOR("Tronlong");' G" @: T- ~6 f. T; g
MODULE_LICENSE("GPL");3 `6 z* M3 W. e- ~0 z& r

5 ]( v5 Q3 V1 c4 U5 l# }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 06:31 , Processed in 0.037802 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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