嵌入式开发者社区
标题:
程序注解
[打印本页]
作者:
rgf
时间:
2018-1-19 19:02
标题:
程序注解
求大神给下面的程序做注解,请稍详细些,谢谢。
# Q7 H2 g! z% C0 W0 ?: b- _
#include <linux/init.h>
9 V1 M$ L/ \: m* \+ }
#include <linux/module.h>
q! D/ q$ N' M; b
#include <linux/kernel.h>
8 } C! i5 E9 g/ p
#include <linux/types.h>
9 B' X* H" s+ j, G8 k* F5 F( o1 r
#include <linux/gpio.h>
5 R2 H7 I8 t. f7 g0 {# d
#include <linux/leds.h>
2 n+ ?8 c% w! N) e+ r9 R4 E# W% l
#include <linux/platform_device.h>
1 P$ _( ~6 {; f7 h, ^* [
4 R0 F% H( ~0 ~5 L5 y/ [$ l% x
#include <asm/mach-types.h>
/ y; D& @' @) y& F
#include <asm/mach/arch.h>
n+ M/ j0 L" Q1 f& s6 Z
#include <mach/da8xx.h>
2 F3 |5 C9 c) z" Z; B% A6 D
#include <mach/mux.h>
7 W M' p; v" @$ A+ j
9 z0 w m- G* A9 w
#define DA850_USER_LED0 GPIO_TO_PIN(0, 0)
" q/ E- n# _- e
#define DA850_USER_LED1 GPIO_TO_PIN(0, 5)
) y7 w" m& m7 O9 T1 I/ h8 U' L
#define DA850_USER_LED2 GPIO_TO_PIN(0, 1)
) E8 r' c* @3 \' w
#define DA850_USER_LED3 GPIO_TO_PIN(0, 2)
8 i9 u' I d+ }. Z
0 P j; V/ d6 s) M/ z
/* assign the tl som board LED-GPIOs*/
e" k0 X$ L' u( A2 ]$ K2 C
static const short da850_evm_tl_user_led_pins[] = {
3 ?1 r( N, b; B, ^0 {
/* These pins are definition at <mach/mux.h> file */
6 h3 O# f: `1 S& W/ H
DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 B6 O. H1 b8 b, T# ^
-1
) n/ \) W$ b9 w
};
) L% x- N# V" |1 x
# s2 |6 }& T5 T& `( p" u
static struct gpio_led da850_evm_tl_leds[] = {
1 u& E' M' j8 A! G
{
1 J# ^3 {) p( ]& j8 D( g
.active_low = 0,
! A" C. N* o9 c% {* [: ?
.gpio = DA850_USER_LED0,
2 |" \9 p4 Y0 d" n9 a" f
.name = "user_led0",
; v& {0 H+ s" a5 l# r Z4 G
.default_trigger = "default-on",
1 w! Q( q( i% o' ?6 g
},
, z' R! l) `+ P B5 X- P$ p' \3 X
{
9 A5 n/ F5 l, u6 @7 s
.active_low = 0,
2 L p7 W C+ J
.gpio = DA850_USER_LED1,
2 v% }- B6 m+ n9 ?0 y
.name = "user_led1",
$ v! \) T9 j9 L% o! B+ `) Z1 _
.default_trigger = "default-on",
, O5 }$ H# y" ]6 G
},
& @$ J2 W+ ?4 F2 D
{
4 T3 ]$ x3 m2 R0 @- |
.active_low = 0,
! S p! V7 J. S
.gpio = DA850_USER_LED2,
( G- z, `! Z6 n; i( z
.name = "user_led2",
- m. ~! z, e: f+ e. H5 W% m; U+ f+ w
.default_trigger = "default-on",
9 }+ x8 {6 c7 }0 F W: u
},
; T; M& {" U! l! J
{
. y9 y1 T6 O8 \+ @) m5 C
.active_low = 0,
1 }$ B7 j- w# {! d5 g, ^, j
.gpio = DA850_USER_LED3,
- O5 h$ E% W3 H2 [
.name = "user_led3",
7 d' f2 {( M8 t4 j3 m( S1 x8 Q# x+ c+ x
.default_trigger = "default-on",
( G* H7 H: [/ Y3 Q' P _8 O
},
, Q8 n' R2 l: o# y- l" s
};
+ E* M4 E- _, l& p; u0 q$ B3 P
! l+ R/ p6 ~& X
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) m+ m0 P% n3 c
.leds = da850_evm_tl_leds,
, `8 r9 S- X9 e% m/ f# v' F
.num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 |6 b/ e; K! M
};
$ O) o4 L, I% `+ q: U
! A, {' Z' j' n0 m3 B6 A6 `, }
static void led_dev_release(struct device *dev)
3 S% k2 E# u0 z$ W+ v2 Y& w* B- J
{
0 X& C0 ?- L% x+ R* y, G9 K
};
* |3 R- R) }, o- x- N4 A/ x7 q
% z7 X3 m% L/ `
static struct platform_device da850_evm_tl_leds_device = {
% O$ m& Y- L1 u! |6 W# ]
.name = "leds-gpio",
, c" u. W0 q6 ^- K; {' p
.id = 1,
) j" c, g' |& r+ {( j
.dev = {
( N# C# x3 H1 q7 y* B
.platform_data = &da850_evm_tl_leds_pdata,
& I( @$ S+ Q- P1 m: F; |, e
.release = led_dev_release,
& |% n% y% ~ A- \
}
# C+ f7 H( X1 M. Q
};
4 D' Z4 k. A8 `& l( |1 l
9 e* a( A, m7 h, r
static int __init led_platform_init(void)
5 J- |0 E" n/ R. L
{
7 l& u. W( V4 `4 S A2 s$ Y
int ret;
6 g) o- S: F7 Y& S' ~
#if 0
' C. y; ? v! q5 d4 Y1 Q) D. v" T
ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
6 o# [3 d- B& n9 G, i+ K" M
if (ret)
5 [/ O6 q# z; T8 K; D
pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
- r! I4 l6 a! F# }6 ^ g
"%d\n", ret);
- k- Y" j$ j0 U2 B" k
#endif
8 ~* d/ `7 L. o
ret = platform_device_register(&da850_evm_tl_leds_device);
3 B6 ?9 Y/ Z4 G" p5 i- o l ^" P
if (ret)
: t+ L5 m1 e) ?( [) g8 e
pr_warning("Could not register som GPIO expander LEDS");
9 R4 @2 X& ^$ Q y
else
0 N* a( E$ u: y; X* f
printk(KERN_INFO "LED register sucessful!\n");
, C/ Z) g& C+ _! ?- {+ K9 c
/ f* n }/ I" V* G" \! P* ~4 Y
return ret;
/ h0 b. |" @2 P# x- B3 r) E9 Q
}
5 l- c7 J I' y) R, ]) ]
& O$ V- ?; o( O* {2 n* j
static void __exit led_platform_exit(void)
@# p7 ^- G+ \& W8 Q
{
" l8 R8 u6 z+ h
platform_device_unregister(&da850_evm_tl_leds_device);
/ }4 F/ Y# t- o( M+ R/ ~& s
- `* |9 f5 `3 O1 T) G, ]- m
printk(KERN_INFO "LED unregister!\n");
; u( P( U3 E' V. D0 y
}
; v( O' B9 l7 `, w$ U+ _3 G
. _" G6 q: ^$ s6 C. I w
module_init(led_platform_init);
0 m( r% ]0 a2 S- d* d* s$ {
module_exit(led_platform_exit);
6 ?( J6 @0 N" U5 v: c1 X7 A
$ X7 \6 h# K: n' m4 _: l7 W
MODULE_DESCRIPTION("Led platform driver");
5 ^/ J+ g( R- e' ~. x
MODULE_AUTHOR("Tronlong");
; S6 X9 K) O; w m8 j% q
MODULE_LICENSE("GPL");
0 x; b2 Z: Y' K \- d( S
5 r0 k: C( {" b/ P
欢迎光临 嵌入式开发者社区 (https://51dsp.net/)
Powered by Discuz! X3.4