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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ s7 t9 a. l8 e; _- X#include <linux/init.h>3 |3 _9 A% |% U; S: @: U3 n# v# K1 a3 s
#include <linux/module.h>
4 v- Z5 O* n1 i' G' r#include <linux/kernel.h>- T5 d$ n' R4 I( N9 q- Z2 p  q
#include <linux/types.h>. C6 ]0 M! }" x4 R
#include <linux/gpio.h>1 ~" j  M4 w; Q  V2 Y$ d
#include <linux/leds.h>% B6 m& \# ?4 A  f6 `
#include <linux/platform_device.h>
- h1 S3 N" a% k8 f' s+ B* F& M  M' H- F  m7 o( }
#include <asm/mach-types.h>
* W- Z* M0 V2 {  t* U5 r& R9 s  [3 C#include <asm/mach/arch.h>
7 p: V- P7 j& p- h4 M#include <mach/da8xx.h>* e! l7 d7 u1 S* {. F
#include <mach/mux.h>
$ N+ ^) a) L8 q2 y) }* T
! [% q. e2 B. x6 O6 ^: \) v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 g1 y* h: j' y" t. H8 i4 `2 e8 H5 [#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ u: S2 X# w; v. f) S3 @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; g: y4 M! R4 `1 Y  ^* b  P5 _- i( q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" v8 u7 H7 p! J  R# q8 A7 L) K9 l- a$ M: @0 @- O, k3 n
/* assign the tl som board LED-GPIOs*/" V" Q' D/ i" D9 B' i& O! k/ p6 Z# c* n
static const short da850_evm_tl_user_led_pins[] = {
; p  i" r: S+ ^: ?# B* z. w- l0 i1 M        /* These pins are definition at <mach/mux.h> file */
. Q& X# N% x, r# ?. g1 D8 q1 w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," R$ p+ [3 T6 M2 x% d" K
        -1
) R2 y- S: X; S! e- t: {2 x2 Q};
- K* a8 E' }' w/ p# U! ^: r$ `% N& U4 C
static struct gpio_led da850_evm_tl_leds[] = {
1 w' M' A: Y/ F2 X" @' U        {
8 ~# g+ N2 K& z( I) e7 f                .active_low = 0,. N0 t) n# o  I& e  u0 {
                .gpio = DA850_USER_LED0,) O5 X# T; Y7 _: W/ H1 B
                .name = "user_led0",6 l% ~. }5 q$ V1 T# G$ [3 T1 V6 ^
                .default_trigger = "default-on",& K# F( U& j) }' W6 O: s, ^( d
        },9 r1 a8 @: K: q! f8 P. y0 w
        {
. \3 j0 S: x/ t6 r/ Q# |                .active_low = 0,4 a- |- U5 u4 e
                .gpio = DA850_USER_LED1,9 V: q' W7 s; h0 a  i
                .name = "user_led1",
9 _  t6 T  y8 u, |0 y, e                .default_trigger = "default-on",
# O& Y8 G, R0 u$ a: ~. c        },
( p1 y8 J/ N- Y: y1 k5 e0 n" J# i        {* ]" {3 M& A; i1 X, z: [
                .active_low = 0,1 `5 Q) ^, T9 C6 z0 `8 _1 |
                .gpio = DA850_USER_LED2,
# `# o7 k4 N3 j7 G                .name = "user_led2",
2 b. G6 D7 K; z                .default_trigger = "default-on",9 T0 o8 d6 h& a7 ]) r
        },) i0 W/ W7 z2 f5 O6 g
        {9 I4 {! h/ }/ _& Z6 B* t
                .active_low = 0,
$ W5 o9 N" Z( I" ^8 G! y) R                .gpio = DA850_USER_LED3,
6 }- X4 m; m+ N3 \. s                .name = "user_led3",/ w5 q# `- k* K% _
                .default_trigger = "default-on",
8 A9 P, \/ N. l. P        },' z" P! E  {" k4 _. u; j; _  _$ \
};
  P' s+ q4 }0 B; H& z' C
2 Q" ?0 |4 _" B% l- A: G& \1 Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! }8 j; Y1 L: f) X
        .leds = da850_evm_tl_leds,( {/ [& k( }6 n, i
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, |# R# Z0 R5 K$ T5 i4 s};
& Y1 ^5 i1 K7 _$ C1 ?5 v- w7 o4 z6 M5 [. L: N( ?+ f
static void led_dev_release(struct device *dev)
1 s6 Q: D' ?: N' K{
; z! c7 c' }# w' ?};9 H3 P" Z: G& s7 I

9 |) _) C# \6 o5 ~static struct platform_device da850_evm_tl_leds_device = {
; r& h/ p$ X- }: L. D) C. _        .name                = "leds-gpio",
( Q& F/ l# U5 y1 V& A        .id                = 1,
* {9 m3 y8 |7 H1 o* J$ j: b        .dev = {
, b5 z! r% c: f1 |                .platform_data = &da850_evm_tl_leds_pdata,( i: S" ^% Q9 u& r4 J& t3 }# ~
                .release = led_dev_release,+ t" i: P' W. z2 q9 w% j
        }6 C8 b' p1 e' M0 W+ L9 U$ _. I* w: ^
};
4 v6 R; j; u4 w7 F8 [, q) p9 o/ F
* S3 F' W0 I( ostatic int __init led_platform_init(void)
1 G4 }. B( j! a{
- K: c% ?9 r/ L% `+ ^        int ret;
: [4 f: u( E- T1 c6 u' b) h#if 01 ^2 _$ Q! G3 O3 P/ y) L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) q) m) I9 i" ~1 p; x6 C4 ~
        if (ret)" b! t: p* A  k4 ]6 o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 v. P% e- ~8 [7 {4 e' N$ q+ x
                                "%d\n", ret);5 a8 d0 y( ?! b7 Q! |- n/ D
#endif; {) o) V: I! R/ z; J; i
        ret = platform_device_register(&da850_evm_tl_leds_device);
( x. S- y& b( l+ C        if (ret)0 f1 d$ ~( e7 I  _. ]
                pr_warning("Could not register som GPIO expander LEDS");6 m- @3 ^! D3 A: z7 ^- b8 a; {* l
        else' L% r$ i) q0 m+ J% R8 M
                printk(KERN_INFO "LED register sucessful!\n");
& W% z: l* y" v  R- q* [- x
. C' u8 V6 b6 }. K3 `3 s: }( j        return ret;$ N5 O3 S4 Y% W4 S$ A
}
- M7 V( i& u9 ~$ A/ ]  R- {( H! Z3 o( Z) B7 d
static void __exit led_platform_exit(void)5 C3 B' U6 W; Z; K: v
{' Z" X+ t4 t6 x7 Q
        platform_device_unregister(&da850_evm_tl_leds_device);
; Z/ P, m0 T" O, E0 y$ v! \8 ]9 R, h) Q! f1 N- o5 s& K
        printk(KERN_INFO "LED unregister!\n");6 E' y6 W& F$ y3 h* W
}, Y+ C1 f6 s9 A, E- K- i
2 G$ W1 s7 e  c+ b2 N
module_init(led_platform_init);
$ O  [- A3 B! T) |( ?+ ^' pmodule_exit(led_platform_exit);
+ s" n1 `0 m3 Q$ [
! {+ G$ }" ~6 d. x9 W% ~+ zMODULE_DESCRIPTION("Led platform driver");
" O. g/ Z- q0 F* {- [MODULE_AUTHOR("Tronlong");
! P: g0 J9 J4 ~9 g" e1 z$ uMODULE_LICENSE("GPL");  I; h5 d+ _( c5 {& z. f! l3 t6 c5 ~
% j, F* Q3 k( P, W  Y6 j" g' N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-12 22:25 , Processed in 0.039663 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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