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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* Z' F# L' ]( G: d#include <linux/init.h>
2 W5 ]! U& U" w1 b1 ^#include <linux/module.h>1 r+ B5 p$ d" F  Q5 u
#include <linux/kernel.h>0 h' B# [  `6 z' `
#include <linux/types.h>' z8 Q6 E6 l7 ]* O( {) i
#include <linux/gpio.h>% b, a1 W1 r4 [4 x
#include <linux/leds.h>
+ C9 L- g6 }" f7 \2 I) A#include <linux/platform_device.h>
( Z; s' f. P5 ?. i& e5 T6 K* j9 ~: s$ k4 d8 G) X
#include <asm/mach-types.h>2 O  h# N- J4 T! u/ c
#include <asm/mach/arch.h>$ q. I* X, _8 ]" z' r
#include <mach/da8xx.h>" o, e! D) }& r. j$ \; Y* Z, }
#include <mach/mux.h>) U1 b( N. v/ J! ^8 y1 c* f9 y/ t, Y
+ \- ^* j& ?$ ]
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 B$ B8 f. N% Y+ Q/ T. g6 E#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 r7 e! O  o4 U: \) y+ n$ ~0 t6 y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 d5 ]2 j  I! x. ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- E# B  y% W) Q' K4 v. f* J

0 _$ R* G& K& r, j, W  R/* assign the tl som board LED-GPIOs*/
! X, f, K" x( R) y  s4 ^$ F$ ?static const short da850_evm_tl_user_led_pins[] = {1 M3 E/ J7 X* C  c; {( Z1 \$ u
        /* These pins are definition at <mach/mux.h> file */4 m8 a7 n1 r3 \9 u/ g! f9 K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 ?7 v2 f1 o) `9 ]        -1
/ z! z7 i" U. Q' ?};, G" A- u2 ~/ o
+ G$ f  X; C1 l
static struct gpio_led da850_evm_tl_leds[] = {
5 E; }, `4 |! C1 f4 ^        {# h1 K+ V5 e. m! }* P+ d' L8 |
                .active_low = 0,
; r: T! X) [4 g3 h8 Q) m3 L* R& d                .gpio = DA850_USER_LED0," A' [  h! D# U* s$ \1 f, y
                .name = "user_led0",1 {# h2 b% C# h& m
                .default_trigger = "default-on",
3 l6 ]  ?3 ^0 \+ a0 V        },
+ g$ t- p/ `/ T# R! L        {
" Y' l! V" l4 a                .active_low = 0,) t! q7 O# R  n' p
                .gpio = DA850_USER_LED1,# |" y+ o( s; G/ V* X7 S1 f
                .name = "user_led1",
3 ^2 P% z6 w5 ~6 z9 d                .default_trigger = "default-on",& r6 v. I& U( N$ M: p
        },$ l/ F; j3 I( H/ w; p
        {
% _, |& i9 B5 ?                .active_low = 0,. A7 Z! U, M$ b  R
                .gpio = DA850_USER_LED2,
. ?/ E! x7 W* C4 s' U  c$ H                .name = "user_led2",/ h8 r) Q/ d5 E3 W. k) H
                .default_trigger = "default-on",
) Y# A! G( C7 F& u- n' ?' L        },2 x" U! Z, D/ G! e# y
        {' ?* D/ C7 }9 z3 c: Y* l
                .active_low = 0,
; X6 z* p' n1 v7 V+ j2 C7 ~                .gpio = DA850_USER_LED3,
9 s2 k# u! B5 s( X, |                .name = "user_led3",2 K0 x* r/ V8 u! S1 C% N
                .default_trigger = "default-on",7 |9 W" o4 E; a7 a
        },+ N- Z- M% Y% f. ?0 P
};
: ]; K1 i3 A8 ]2 ?8 z1 U* B8 ~
) P( g! g( `" K# t$ p0 y( U; |" xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 R+ J! Q% u# I
        .leds = da850_evm_tl_leds,7 }) B" x) A& w/ q- x+ H/ @# {
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 h: @5 |" o9 h1 [3 Y5 h5 ^% Q1 ]; j' W
};0 Q) K, T7 s$ x) \' P4 F, k/ U
9 b" k% H4 R( {0 F
static void led_dev_release(struct device *dev)
7 O$ c3 I2 ^2 T! {9 @! ]) T{0 b& e0 L+ f2 \& [9 a
};3 q$ ^3 n. E- F. @* |, x/ k1 c0 X) }
$ ~0 E$ [; B8 z' G. u/ `
static struct platform_device da850_evm_tl_leds_device = {* B# \) T8 t- z) {9 R
        .name                = "leds-gpio",
! z2 m4 N0 r: q$ m; {        .id                = 1,
4 O' i9 k  k6 ]/ |2 B        .dev = {4 D* U" U0 R9 Q6 Q
                .platform_data = &da850_evm_tl_leds_pdata,3 I4 _  a: a% Z
                .release = led_dev_release,# h" f4 X# r. o5 D; c' F
        }, q& a8 \! c$ ?% i/ n
};
7 ~* H9 C( R( H8 r4 J+ u0 Y) x/ `1 L0 S% H7 J/ C3 v
static int __init led_platform_init(void): ?  ^. h9 X( |
{
& m# F; Z' S. O        int ret;! k7 Y2 P0 ?- q3 |& V4 V
#if 01 ~$ c- \) b. G* v4 @
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 H  I$ H3 ^+ N( J) s
        if (ret)
5 _2 O% R9 y3 [7 G! |                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; i& T  q0 n5 ~
                                "%d\n", ret);
2 I# L$ _3 x. I#endif
5 P0 w, Q4 j6 z8 c' `4 S2 |# t# {0 \: o5 H        ret = platform_device_register(&da850_evm_tl_leds_device);
7 R( Z5 q$ o# u" q8 |2 g' ^) n        if (ret)
8 J, Z% }4 e" ^+ x' p/ f! @                pr_warning("Could not register som GPIO expander LEDS");- {" c4 H- r* W7 m. n
        else' x) h+ z) C+ T* G( C
                printk(KERN_INFO "LED register sucessful!\n");% A0 H1 [2 a/ }3 [

0 \, F, }7 y5 B0 D% Y+ U        return ret;9 E" `3 z( ]3 n. b& Z" f7 l: L. O" P  G
}: G2 \: Q  }+ v9 `+ R
9 ~( I9 B' r# h5 C5 q# c. B
static void __exit led_platform_exit(void)) f# n* o' m# v
{
* [; u0 N5 g8 ~2 b9 d" d        platform_device_unregister(&da850_evm_tl_leds_device);
+ H, o. _7 c% @, c7 b) M7 h! P% N- h7 d5 B
        printk(KERN_INFO "LED unregister!\n");3 _  D: f0 x$ D/ o. O: z( d
}9 l6 Q! |! ]9 }0 D9 p
# Y& l+ |6 y. H% B  f/ [
module_init(led_platform_init);
9 o# ~: N& \- ~( V2 ?& xmodule_exit(led_platform_exit);! V- h% K( P! M& }* n9 y
0 A& p. _/ J/ d! n
MODULE_DESCRIPTION("Led platform driver");
& R; J( O7 v2 U& o4 r+ G1 p2 rMODULE_AUTHOR("Tronlong");& M7 |8 T; K6 n1 u
MODULE_LICENSE("GPL");
4 @. _+ [. I: i9 C
/ N! g3 q; B: S$ E, l! K* Q5 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-22 18:16 , Processed in 0.036713 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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