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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 X; O4 U8 _4 P4 D# W) T
#include <linux/init.h>
6 s, i  s" b* y4 ?5 M5 T4 r  T% i- W#include <linux/module.h>
+ h# w1 H) I, F. C#include <linux/kernel.h>
" m( W3 E: z, e8 s9 g* O) l#include <linux/types.h>0 X1 t# C5 Z" i
#include <linux/gpio.h>
+ E1 v% p- G% I2 n  C#include <linux/leds.h>* f! s1 J+ e0 m
#include <linux/platform_device.h># }+ Q6 B/ O* D# L

( V! g# {8 M( U6 v9 H# Q) G#include <asm/mach-types.h># d  t5 B' w  S# |
#include <asm/mach/arch.h>6 L- z1 G! O! l
#include <mach/da8xx.h>
% F& U# T: }. {3 }; e3 F#include <mach/mux.h>; Y1 Q  |; d* `! _" Q1 h) R1 |
7 i6 q, l' O' V' w2 l: J- Z
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* F$ @% ?' a9 \  D4 }! u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' I/ [' v, }1 G& \9 v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) O" j2 F& U; L8 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
! |/ G  L* e- O! N& y$ V+ ]" b' S8 \& I( t% M6 [" V3 g* F5 F
/* assign the tl som board LED-GPIOs*/
' w0 [% e9 R/ k+ W3 K- @+ `static const short da850_evm_tl_user_led_pins[] = {; {/ N2 k3 J; _' R
        /* These pins are definition at <mach/mux.h> file */. d7 ^  x& l+ T0 |0 I. @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 v* v, ]2 t# T/ J        -13 I# F+ S1 J+ [) h$ M& N2 g3 H
};
* j  i. s% Z* Z/ I7 S- X& b) }5 n; V* R$ ?& Y
static struct gpio_led da850_evm_tl_leds[] = {
1 S) L% ]! v, E1 ?6 q. v        {0 X# j* u' |, p& ?+ A6 D) L$ m( @! q
                .active_low = 0,
! s6 ]# D5 s8 d4 L$ B- B                .gpio = DA850_USER_LED0,2 C0 c, Q, V& C, W; {  L
                .name = "user_led0",) d6 ~( P+ |/ z2 z7 j
                .default_trigger = "default-on",
8 J" j% b9 j; m; U9 F        },
8 |" M2 |& V* m/ p" Z        {
; E! X6 V! U1 k! |5 m% v+ q                .active_low = 0,5 o7 b  E1 l; {- m
                .gpio = DA850_USER_LED1,
& @1 L: X/ e6 J" |" B1 ?                .name = "user_led1",- |1 O  f5 I: v6 g8 E$ o
                .default_trigger = "default-on",7 ?( ?+ S: q8 W1 k
        },
4 v+ A$ `7 m0 w" }- G( R        {
/ u" n3 k  ]5 N* Q3 L4 L                .active_low = 0,
5 n2 |1 a2 J% r0 p5 M+ W                .gpio = DA850_USER_LED2,6 u" @0 C! x# ]# x
                .name = "user_led2",
2 \* K+ |/ }" o6 }- a                .default_trigger = "default-on",
0 h/ f) O2 S/ o. M9 ~        },
3 B* ]3 D: q: Z! H+ J) c6 U6 B7 b        {
# {* W  d0 I. @3 Q) H. A                .active_low = 0,8 y2 D( h: _' X; I  M- g
                .gpio = DA850_USER_LED3,
: A/ M: ^$ r3 }# t9 _3 ^                .name = "user_led3",
; N- i" P3 b3 D# \                .default_trigger = "default-on",
( y0 ?4 G( B* {& H6 C- T$ [" X# X        },. w+ ~! P, z; W6 O0 y6 I- ^7 Q
};
' g3 h- v' h" N9 x0 ~! [) o: x4 J
$ [5 d$ x! u$ _, Z" ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ ]; ~0 u0 u' ^/ z        .leds = da850_evm_tl_leds,
' G4 e" J) @1 `; G) X6 v0 L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 @, H# S3 _; E' \7 M2 h};" D6 v% z* ]+ X4 W& r( M
; F( F4 i7 d0 Y  Q
static void led_dev_release(struct device *dev): U2 S/ W$ t1 t0 C- D
{
: D' u  K5 J/ o2 q* N2 B/ Q};, r# ^% h1 J- Q! ]

5 T/ L) n+ ^8 q* F( ~static struct platform_device da850_evm_tl_leds_device = {5 M/ I; r1 S$ O. X5 w7 x9 |; H
        .name                = "leds-gpio",. T9 w; p$ W6 J: s
        .id                = 1,2 A6 ?  z: P  k- U
        .dev = {
, G0 a0 a- _* d                .platform_data = &da850_evm_tl_leds_pdata,% C- U- P; @/ e, K4 e8 s
                .release = led_dev_release,. @1 P2 e% E+ g) ?0 K6 b. r
        }7 H# f) m' M& ^! }% ]# A. B8 l" a) u: W
};+ F4 p1 i2 C% B# e* Z

: j( i2 u4 f. y+ k8 xstatic int __init led_platform_init(void)
2 `+ R0 _' n# j  Z9 ^{; i1 X, F, z. r) k8 y( L
        int ret;
1 j' O; I# n+ j1 J#if 0
$ M& c& e! j% I. X/ Q& Q$ z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: A) Y, G) t1 `* ]  }        if (ret)
6 a) Z- a+ @3 ]& q                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 s, B% Z' ~" t: t; K; @
                                "%d\n", ret);
- m8 y: y( b: Q8 n' U0 a. Q0 z#endif
8 u5 W/ T4 t1 m0 |( A/ [2 X; `' ~( r        ret = platform_device_register(&da850_evm_tl_leds_device);
9 f* Q: M7 N, l4 O        if (ret)
7 s: H5 f& v8 y7 Y# P8 h( O                pr_warning("Could not register som GPIO expander LEDS");
. x. X/ T3 i$ J/ E: @2 u        else, j3 V/ z7 o& q6 J- Q
                printk(KERN_INFO "LED register sucessful!\n");
$ U) R: l' Y% _3 f1 o. Z- l% p& |+ N9 }3 W/ u
        return ret;
# T! R6 }1 q( l  d+ u* N}% N; _4 u8 W" T- V* Y

: N! q7 @# ~; C* Hstatic void __exit led_platform_exit(void)
1 U) Z: a2 @# w* \{/ V( J5 v" e/ U( W
        platform_device_unregister(&da850_evm_tl_leds_device);3 r$ U# l2 c: F

- f* E; O" t- R5 R4 I        printk(KERN_INFO "LED unregister!\n");. u" @2 K& N2 s2 @4 T: b! u' w
}
1 S9 g: ~0 K+ r' K" P5 y- `& K/ w0 c
module_init(led_platform_init);
: |0 I# h7 [& e/ P, \/ o+ Hmodule_exit(led_platform_exit);
# z5 b9 N. N1 u9 N" ?  }
8 u' G) }4 r! ]- NMODULE_DESCRIPTION("Led platform driver");
; C0 ?# T6 s- M3 Q$ @5 d7 GMODULE_AUTHOR("Tronlong");) t8 y4 r7 ?8 Q3 E
MODULE_LICENSE("GPL");4 F) F2 T) n- B4 q5 f) e* p+ o

* e% O- x4 v0 D* E, o9 ~; t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 19:38 , Processed in 0.037049 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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