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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。$ w# e, s! U8 C, W& z
#include <linux/init.h>* ^1 C" g" B- }" M8 }3 ?  ~6 c  p
#include <linux/module.h>7 X2 W: N1 l! N- _; c9 y9 Z# s
#include <linux/kernel.h>+ v1 ?+ z) |& m/ A  e5 [
#include <linux/types.h>6 S; O$ y! @+ q+ E0 q
#include <linux/gpio.h>
; g- s* t- L7 N! k! \#include <linux/leds.h>1 \) q' x" a) y. ]% m; G7 Z/ N! j
#include <linux/platform_device.h>8 W; Q6 r& |' {7 P- @4 O

+ e7 Q+ G8 p8 z$ Z% L0 n" s: V* H6 w#include <asm/mach-types.h>  ~: H" v) C; q4 a7 {, R9 M
#include <asm/mach/arch.h>
1 a* x0 ?1 Z+ W( `* a# s% f  {#include <mach/da8xx.h>3 @: h7 r- z+ g6 n  U
#include <mach/mux.h>
% g( C7 D4 l4 e: M; {
* p& N6 L2 d2 A: J8 r3 ~; N#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 O) {5 s* s, E. k$ ]. X6 \2 V& h# a#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)* I$ ]3 v7 D. W0 F* H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)$ ]0 y0 j1 z+ {
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ Z: b( b" N1 F; p$ i
& _+ W6 ^  h8 X/* assign the tl som board LED-GPIOs*/4 R. @) W8 r$ I6 v  v. @' A
static const short da850_evm_tl_user_led_pins[] = {
# K+ W1 o1 S) s: B% s. e6 Q/ S# K        /* These pins are definition at <mach/mux.h> file */) x/ B$ c6 d+ O( A4 Q
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: C: A# I) N" f+ K6 Y! z+ W        -15 \0 Q) M" T# R: b8 P% ?. l+ U
};. g! D- l* |9 @# q( [% D) P" q  @
' z9 n; l, _1 n( o" Z/ m; B. d9 @( |
static struct gpio_led da850_evm_tl_leds[] = {" }' c7 K0 K' z" Z0 W( A9 i
        {
8 K, x+ V$ W$ m$ k% Z- J6 U1 ?                .active_low = 0,. W& A: H' y2 R2 M  U
                .gpio = DA850_USER_LED0,
- ~* ?; V- [0 N5 O( f# u3 E                .name = "user_led0",& I/ U. M6 Y- Q+ O8 b: g& H- C
                .default_trigger = "default-on",
# w; H1 x: J/ Y        },
0 A  y) @5 w" K        {: V( {8 ~: n7 ?: f
                .active_low = 0,: p! a1 t* t) k" a7 d5 P
                .gpio = DA850_USER_LED1," y  j. ~+ y5 Y3 z" ]0 s* V7 \
                .name = "user_led1",4 z& N8 M" h' w9 |0 Q
                .default_trigger = "default-on",
; _# _& W4 q# t& A        },7 J3 V" |/ N5 W% |: Y  L
        {* D( T: t5 }( i7 m% k+ [7 B- Z
                .active_low = 0,, D* t  Z) C" R
                .gpio = DA850_USER_LED2,9 V8 _1 e1 o) @& n( a. Q
                .name = "user_led2",
/ p! z8 i8 J- O' F                .default_trigger = "default-on",: K6 @* s7 l3 v: S. {4 q
        },: U. u* [4 m# B4 R
        {
/ E: J5 C# ]" T" f1 J  c! M                .active_low = 0,
7 v' [6 V  z) |8 u                .gpio = DA850_USER_LED3,( p5 u3 X3 _$ A) j* V% n9 x
                .name = "user_led3",
% ~1 X8 d9 b+ l4 j                .default_trigger = "default-on",
- s+ O  r9 o# d7 w) p        },- b! u2 m, V& B5 v4 F9 a9 w& R
};
' S- c+ Z; X- }! t& V; n; w
& y( X5 l3 b. Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: o: X) c, p: {6 _" C. q        .leds = da850_evm_tl_leds,
: Z% b! z' Y, v$ N- U; U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
5 O8 f* Q* H% |- h; S};( e+ |4 B7 ]0 u  n
- x/ }2 C; [3 M: e
static void led_dev_release(struct device *dev)% P4 E* n; s& f
{. A1 F1 j8 Z+ K+ i" v9 _
};
+ [; `/ N$ V% f' z5 F' L, K; X& e6 ?9 H8 C
static struct platform_device da850_evm_tl_leds_device = {
0 C8 w! \% @% y" x/ p( g  |        .name                = "leds-gpio",6 L! E. M, n' L  Q9 W( s% E
        .id                = 1,+ f9 P6 w! Y# C1 H, X
        .dev = {
  {6 c: ~" Y6 E                .platform_data = &da850_evm_tl_leds_pdata,. {. A# o" S* O/ X/ C( m
                .release = led_dev_release,* E- Z& B( h- ]& M
        }
* ]" B! C! _6 L, I7 r, z, e8 r3 v: v8 v};
+ k2 E, J! b' w" D. i  u! j: u, K; M: ^, B+ a* m
static int __init led_platform_init(void)4 V  L3 D. X( V( b/ O" h2 x
{; R, J# o3 \2 @/ n/ K' |) Z0 }. I
        int ret;
$ h4 J) C! K) a7 P#if 0+ v# G2 R, y% g9 e7 s7 |5 ^
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: d$ x* v- M) D$ R        if (ret)* m" ]! a! {: Y3 J- k! }  {
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% F; R9 ]- n% }4 k
                                "%d\n", ret);
) N3 _; ^3 R8 Q1 _) H2 E#endif7 L4 a9 v' e8 B- }/ M* R( C7 C
        ret = platform_device_register(&da850_evm_tl_leds_device);
) L' i) L) ^( M8 N1 R& V        if (ret)
1 v" O' A7 O/ v7 x( z' K7 J7 a                pr_warning("Could not register som GPIO expander LEDS");0 i0 I3 e) ~) R
        else1 r9 G! |2 F$ |6 B( E
                printk(KERN_INFO "LED register sucessful!\n");
% O. q' p$ }  \! ~) ]
; z7 u( b  `- |  J2 T! V+ l3 g6 f        return ret;
% u/ V* J: c6 V' ?5 S}
' {5 `; C6 h5 i8 n2 |
5 c$ W* O* u+ D, l0 n3 nstatic void __exit led_platform_exit(void)# ?1 M% Z8 |' G9 ]6 ^; E" C
{, _& L) N, s$ R9 o/ ?) Q% i
        platform_device_unregister(&da850_evm_tl_leds_device);
4 b% _1 {) d% g9 \$ [9 ^8 d0 D0 l- G6 P! a& s9 q3 }( J
        printk(KERN_INFO "LED unregister!\n");
" m& n6 R3 F( X2 k% |}
, u, D/ x, \/ D2 ?3 D9 m1 c! o' g# {, N
module_init(led_platform_init);" I8 a$ h7 [% E
module_exit(led_platform_exit);! M" q0 u  h6 z! n' Y

6 z* k- Y- w  ?7 v- W' oMODULE_DESCRIPTION("Led platform driver");+ N( V( G; `2 N% u6 X
MODULE_AUTHOR("Tronlong");
7 h$ u2 A2 d  S% r0 X& O' iMODULE_LICENSE("GPL");
( z- M# O) K; w8 m5 G% N+ \: d* v: u8 w& Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-24 18:19 , Processed in 0.038533 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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