嵌入式开发者社区

标题: 程序注解 [打印本页]

作者: rgf    时间: 2018-1-19 19:02
标题: 程序注解
求大神给下面的程序做注解,请稍详细些,谢谢。
6 |0 w. S. W/ N#include <linux/init.h>
4 B! ~% L( z. A#include <linux/module.h>; S7 `; I- U; Q$ c0 ?8 d
#include <linux/kernel.h>
( A' H" U: I, t#include <linux/types.h>, K3 g7 U- _5 M* B2 R* m: ?
#include <linux/gpio.h>, e- m( a" a( W% S  h/ w; C
#include <linux/leds.h>
- ~8 k% r  u, q% U- z% Z#include <linux/platform_device.h>" v1 r& d% |& P" ]

: b) S5 d4 {9 n1 [6 t& S) P  N#include <asm/mach-types.h>% h2 `1 _7 ?% M; z3 |3 G+ D
#include <asm/mach/arch.h>) L1 ~* K, J$ V# G0 p
#include <mach/da8xx.h>- }0 J$ n; m# j
#include <mach/mux.h>
" [5 a0 B; N  ^; T8 z
4 L; [# c% V! g  m' m# [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ o/ C; N" @) O+ `  x
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* p/ _9 `& ~' A. K) [: ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% u; U; y1 `- R1 A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); H$ Q: F+ P2 V3 z6 f8 h6 u7 s
9 |7 T9 o8 }) Q6 I3 i
/* assign the tl som board LED-GPIOs*/
0 r) ^2 v3 U1 Jstatic const short da850_evm_tl_user_led_pins[] = {- F; C. G& ?8 h& O
        /* These pins are definition at <mach/mux.h> file */
7 D& ]! w, V* R& P: b( U! m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,( k* r6 k5 q; c3 [* z+ }
        -1
# B" M2 [0 k" V" O! n1 G6 G  F};
: N+ e5 G' ^3 k5 i# z7 b# k- g: v' d% B8 ^
static struct gpio_led da850_evm_tl_leds[] = {, G+ l6 @/ y. H! _0 J9 [  ^
        {
# U& y) L8 X6 x+ A+ l0 l/ ]                .active_low = 0,8 n5 L4 C) s, b& f* p" B9 r. X
                .gpio = DA850_USER_LED0,! M/ P8 b& V# E6 v  H. P( A) `
                .name = "user_led0",# b8 Q2 n1 g" n# n, G3 K- V% w
                .default_trigger = "default-on",. J' Z" O6 ~& v" ]/ h& }* l& X( V
        },
) l: H; i0 T* \5 E1 h, Z5 Z$ Y- w& J        {7 U& t- W" P5 b: t- ?# k3 @, v
                .active_low = 0,
4 L. B4 @8 J& G' G                .gpio = DA850_USER_LED1,
) }( {0 d% n$ K" v6 Z                .name = "user_led1",
$ ]' P, d8 ^3 d: W  A                .default_trigger = "default-on",
( V: y* x; W% {- x# f7 r        },4 R& i- B! l' M1 W* P% E$ J" A+ N% v
        {
4 L0 [- C7 d: \; u/ B& K* l( ~0 L                .active_low = 0,; I0 n% q7 G4 s$ `
                .gpio = DA850_USER_LED2,/ v* ?; Z; p! b+ K3 _
                .name = "user_led2",
# |& x$ F! m+ O/ h- c                .default_trigger = "default-on",
3 A0 u+ [( Z7 Y3 r& N3 O2 d* P9 m8 K        },7 n3 n! J( r7 R; [$ g$ }
        {
% ~/ b4 N# ]$ ^$ Z" M! H                .active_low = 0,
# O$ C. w3 C5 S* V* J+ ]* U# [                .gpio = DA850_USER_LED3,5 @$ ]* A6 _! Y3 u6 e5 d" A7 Y
                .name = "user_led3",
+ ^7 _" b/ ?% w: I8 Z* S2 s                .default_trigger = "default-on",
8 H& c1 q: J+ a1 c( T  V        },
5 M6 Z5 Q4 S2 a- p8 y9 k; z8 |* z};
* s3 w6 o; l+ O" z7 G7 d3 Z' Q( G( S- l4 W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) \0 M! l' p7 _5 I9 v' T( d* ~        .leds = da850_evm_tl_leds,- P0 X7 v4 }) X, Y' O2 t
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* X" B* _/ M5 G9 R
};
# x$ e% ^6 V1 N3 l9 v  A" d# O1 N) c6 Q* X3 _
static void led_dev_release(struct device *dev)5 y, ~4 \! x; c: ^; Z
{( K5 m/ D6 u* {) Y" c8 Q
};! v+ H' V, J" i. |) X
5 W( \: H6 ^8 G5 J' ]% s9 r+ x* _
static struct platform_device da850_evm_tl_leds_device = {) |" E: U) m# Y0 T1 m, G7 U/ a7 r
        .name                = "leds-gpio",
( Y& D! H- c# P0 V( g+ n& R7 t3 i        .id                = 1,
" b0 v' a* U& J9 x$ D2 J        .dev = {
3 D( i1 w1 R$ U. p9 [6 `                .platform_data = &da850_evm_tl_leds_pdata,: a' y/ q; x) A( K
                .release = led_dev_release,: I2 N: Z# v! N* n0 y
        }5 i8 V' V3 v; W1 D/ `
};5 }$ [: J9 J/ K+ F

" [3 t& Z# C9 k) E: [+ istatic int __init led_platform_init(void)
, j  V$ p# O% ]0 K4 J5 g) s{
. ?+ r8 |. b9 h# u/ {7 A        int ret;
3 r5 P8 M( \) x# i9 x#if 0) H* B! a& H4 f2 u
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 X! ^( T  t- |/ ~7 `+ [( j2 f        if (ret)
( z" j4 h' l! y; @# s2 k                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" B8 @- n) B3 ^" C, i& P7 ]9 u                                "%d\n", ret);
0 [  z8 n) k0 t# Y( a8 Q#endif: ^1 b, `' f+ r( I8 r1 M1 k' g
        ret = platform_device_register(&da850_evm_tl_leds_device);7 {! |( i: w7 f3 ?: W& s. I
        if (ret)
* N1 _6 d0 y7 M                pr_warning("Could not register som GPIO expander LEDS");" F& O( ]  i, F) r& ^, r. v4 l2 a
        else% Y' ?1 e7 f: Z2 o4 u
                printk(KERN_INFO "LED register sucessful!\n");
+ r" I2 c+ b! ~6 p' c# D, e$ U# U' @; e
        return ret;
6 Y' L& @2 K( C* f" s. k  O$ ?}& t+ v/ A  r: c5 i$ p, L4 w; j0 ?4 c

9 T1 ]& {9 h  K% a- m7 N" |: y% _+ `static void __exit led_platform_exit(void)$ R; ]1 q- x( r, b
{2 B! H+ c3 m& X! z  b$ }
        platform_device_unregister(&da850_evm_tl_leds_device);* Z- j0 k5 G6 P$ f/ T$ C

* `7 Q6 ~7 V+ u8 E) v  _& [* s        printk(KERN_INFO "LED unregister!\n");
4 s  Y# @8 a% Q2 e! v* E/ s1 v}, w8 \" T/ j2 C/ ?6 z
# L  [3 ?# A( W+ w% C/ e
module_init(led_platform_init);0 C0 \- q; ^, a( _9 i" h
module_exit(led_platform_exit);# A' h4 J) `/ K1 X# ]4 t& ^: X
- u8 M2 [' |% c  F- I* P8 u
MODULE_DESCRIPTION("Led platform driver");( ~6 f# Q. H2 B6 A4 y$ P- {7 b
MODULE_AUTHOR("Tronlong");8 P5 E5 b- j, I6 r0 c
MODULE_LICENSE("GPL");
) X3 B  c/ x9 ^/ P4 [5 C, p0 c( ~
0 E! q' ^/ Q& Z! D* c) j




欢迎光临 嵌入式开发者社区 (https://www.51ele.net/) Powered by Discuz! X3.4