嵌入式开发者社区
标题:
程序注解
[打印本页]
作者:
rgf
时间:
2018-1-19 19:02
标题:
程序注解
求大神给下面的程序做注解,请稍详细些,谢谢。
7 i9 g7 o! p1 I$ y+ u( g
#include <linux/init.h>
# {! Q U: \' f8 }7 u
#include <linux/module.h>
9 o" M( g% w. }" J u' p0 R# M
#include <linux/kernel.h>
: u( P' k4 t7 ~0 P, N1 N* t# u
#include <linux/types.h>
& Z" E$ q5 |! H: e
#include <linux/gpio.h>
1 r6 V) P! v( ~ H d
#include <linux/leds.h>
* x; h% j' o; j- _7 R% G. C
#include <linux/platform_device.h>
: ]! k( \; |" x* p" {' _
|9 j, l) G V4 t2 A3 G h* G
#include <asm/mach-types.h>
, Y1 b' [' [3 B6 {
#include <asm/mach/arch.h>
# N$ C) P) O/ L) c8 T: |
#include <mach/da8xx.h>
2 Y- h$ i8 u) T9 b0 \' W% d5 k
#include <mach/mux.h>
" _, m5 e9 O) P. ~# e
& B" y) t7 [$ N }$ o* H
#define DA850_USER_LED0 GPIO_TO_PIN(0, 0)
: _+ r# J% H9 Q
#define DA850_USER_LED1 GPIO_TO_PIN(0, 5)
4 ~( q$ j+ W0 O% j- K- w" \
#define DA850_USER_LED2 GPIO_TO_PIN(0, 1)
+ [; s0 g$ n* v- e$ x$ c. [& U
#define DA850_USER_LED3 GPIO_TO_PIN(0, 2)
& d8 O' y; r3 [: W; H
3 {( |$ L& ~' H) J
/* assign the tl som board LED-GPIOs*/
0 ^4 `2 S8 F, F- C Y. r$ f
static const short da850_evm_tl_user_led_pins[] = {
* T/ N1 o1 K0 i3 _7 d
/* These pins are definition at <mach/mux.h> file */
b: F$ C1 ~; n" L+ Z+ i
DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, t/ Z& p4 A6 w2 j1 e
-1
3 |7 V( d- a( _: a
};
1 V; u9 ]/ t3 ?
- l( q+ p- x; B6 Y5 p
static struct gpio_led da850_evm_tl_leds[] = {
+ k& t# c# c6 s* l# M# E
{
7 L, r2 L" V6 j2 i5 x
.active_low = 0,
7 U' z; l. e1 H& n& \3 I
.gpio = DA850_USER_LED0,
2 X5 U4 n1 ^0 J& Q! ~' X. \0 _
.name = "user_led0",
4 Q3 A6 G$ b. C! K) f
.default_trigger = "default-on",
& H4 |0 `7 k) b
},
, U2 E! w* a) W" S
{
9 H" Y: A! i3 P$ a
.active_low = 0,
1 K5 B9 ]5 y6 X1 U: d# q9 [
.gpio = DA850_USER_LED1,
) x: W" M) j: U! |* o9 G
.name = "user_led1",
1 z$ D! E. t! W) N% L6 h7 t0 Q9 u
.default_trigger = "default-on",
; \2 ~7 A& U+ H+ y
},
" u" I& a2 N; d, Z
{
) y& W8 C+ }8 X' \# X) t' G$ H5 y
.active_low = 0,
% J% D8 G! o6 L6 F$ W
.gpio = DA850_USER_LED2,
2 w/ H/ y; K# A% ^6 L5 a
.name = "user_led2",
, h6 _( \# @, X- A/ Y/ r5 ?
.default_trigger = "default-on",
+ n, J; I0 z- k. y5 ~2 X6 [! q
},
. v- m' M) V: A. E0 g
{
, F+ V9 f! t7 @, B2 y- D
.active_low = 0,
) }2 E( Z1 f H- r, Z1 w
.gpio = DA850_USER_LED3,
/ U/ j+ {3 C! d% u' D- F7 Y5 Q& G
.name = "user_led3",
+ k% \/ O( P* t4 O( {& J; v+ o
.default_trigger = "default-on",
B1 J/ c6 r9 X4 D7 h
},
/ F! L8 u( b( F2 q+ o
};
* j" X0 `8 i8 T0 {- J1 A, B4 `
" `. T0 C# [* F! s
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& |2 h. v% A/ I: e5 s: ~
.leds = da850_evm_tl_leds,
) _* n/ Y8 {: u" R$ q
.num_leds = ARRAY_SIZE(da850_evm_tl_leds),
+ X, Y. C `; ~
};
: M: k% @, D! B: q& \2 k6 C* e
6 A- _7 m7 o5 ^
static void led_dev_release(struct device *dev)
1 J# b0 K& R6 [( v
{
( M8 C2 L3 `5 z$ I1 _" `* b
};
0 S' C4 |6 \- j6 n. _
+ o% z4 d! W; @8 u7 R5 `& {
static struct platform_device da850_evm_tl_leds_device = {
% y; M: Z& x, L3 {4 f s/ \* T
.name = "leds-gpio",
- r$ `# ]0 }0 p6 |+ S, b
.id = 1,
9 u. @/ U3 o2 F% u3 }, @$ M5 C
.dev = {
0 _! O! o8 ~0 l7 D J
.platform_data = &da850_evm_tl_leds_pdata,
: o7 |4 V% {2 A! Y3 b
.release = led_dev_release,
9 o! c0 J. m1 v' a( n/ v, S
}
& z% C4 G5 [( S
};
" a* l5 E3 M# p* p6 t
0 M: {- J( B D
static int __init led_platform_init(void)
1 W; ?7 u1 f0 x0 q( L
{
4 m) M* a% D7 j4 v' `
int ret;
1 q0 c+ y' L* d5 r c X
#if 0
3 e# b( X) B$ E1 T* G
ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- r* A6 A+ d/ G+ v& k9 m; D& p* s
if (ret)
# q% t4 Y. Y1 K2 H7 G5 U+ `% f& s
pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 j* ^! _/ j1 u1 d9 o9 {8 T# r
"%d\n", ret);
# ~9 }. L4 |3 j: K! V) `
#endif
! p" w, D- _, Y
ret = platform_device_register(&da850_evm_tl_leds_device);
! a5 y! s& l" [+ w1 a7 n& z5 I
if (ret)
5 d' d2 v2 f$ o
pr_warning("Could not register som GPIO expander LEDS");
( Z1 z% Z0 j$ c
else
1 Z) \$ ~+ v1 m/ _( f* [
printk(KERN_INFO "LED register sucessful!\n");
3 W H6 U& J, e
5 S# j! K/ K& G8 n
return ret;
; T' S" @& o) @" @5 S+ ]3 y
}
( T7 G% Z B3 Y
0 ~3 A+ g) L$ h& J
static void __exit led_platform_exit(void)
" |9 C5 t7 [$ l
{
h" E* z! |' i3 H& q7 [
platform_device_unregister(&da850_evm_tl_leds_device);
! `0 `1 G g, E7 j
$ z8 E( r. W' [& a! b4 W
printk(KERN_INFO "LED unregister!\n");
6 A3 Q+ C- q c: z+ Z1 \4 Z! ?1 T
}
4 W8 f" P- d+ G: p; F' X1 h
5 {/ ]6 p! T4 i6 q
module_init(led_platform_init);
* O6 ?( Q; ^* ]) [
module_exit(led_platform_exit);
, e3 n' f; ?* k( J* R; A
. ]% b: \8 A; E% h3 T) }; ?
MODULE_DESCRIPTION("Led platform driver");
, a5 n+ a( Y0 t
MODULE_AUTHOR("Tronlong");
]/ _: s- z4 H- q6 @# g: d" l' T
MODULE_LICENSE("GPL");
! o3 k+ ~5 o! |3 L, s8 u- k& U& k- Y
+ ^8 i* M" r6 Y0 c0 R
欢迎光临 嵌入式开发者社区 (https://www.51ele.net/)
Powered by Discuz! X3.4