嵌入式开发者社区

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

作者: 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, rstatic 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
#endif8 ~* 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        else0 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  wmodule_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 WMODULE_DESCRIPTION("Led platform driver");
5 ^/ J+ g( R- e' ~. xMODULE_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