程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) |1 Z3 c+ y  l7 p  W#include <linux/init.h># {, P* ]" {% k$ {3 N
#include <linux/module.h>
# T4 }% K  S+ S( L# j#include <linux/kernel.h># \4 w. c9 I' Z; U* I% ~
#include <linux/types.h>
; ]% m- j! n9 D+ ]3 X4 y" W#include <linux/gpio.h>, v9 ]: O8 H0 Q/ I5 l; r; P# a
#include <linux/leds.h>* v3 `* ]5 J' u% A
#include <linux/platform_device.h>2 e9 p+ v& [+ |* B
: A8 I0 N0 W- B8 `' B3 [9 o& h' m
#include <asm/mach-types.h>
4 R; p2 @8 y% J8 z& b#include <asm/mach/arch.h>
/ h% w' C  F1 _/ {5 a* O( K4 ~#include <mach/da8xx.h>" F; k5 ~6 {5 ?3 H. w
#include <mach/mux.h># r* m" O8 c: v& d/ i
) Y2 Z4 o" x$ G. X" G1 U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) `) R* {& S# V, h" @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); H! C" r6 }' Y) ~$ j+ y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)8 l5 q% V6 ]" b
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ n! h/ V* E. v0 t) k
: [" x( [4 B+ h3 v6 G$ C. K9 V/* assign the tl som board LED-GPIOs*/( I1 R- S0 W. v, n
static const short da850_evm_tl_user_led_pins[] = {" K; Q( N/ d2 l4 o6 d8 ~6 ]/ `
        /* These pins are definition at <mach/mux.h> file */2 ]: a; y2 t4 c, {
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: j1 n& j" b' C
        -1
3 p: Z5 z+ o% |& p; n- f+ Y};; X8 j1 b# Y8 \- g

" Z# E, G1 h" W1 I3 r8 K/ wstatic struct gpio_led da850_evm_tl_leds[] = {' K1 `4 s) S3 G/ y8 k7 K
        {
* c6 j7 t& h% H" u                .active_low = 0,
/ v$ |7 `: l( ^% ?" N                .gpio = DA850_USER_LED0,
% [8 l! M0 \* W                .name = "user_led0",# v9 Q' R7 \' p  z: k3 N! \) k
                .default_trigger = "default-on",$ t3 E" h1 z( N: g) S
        },
/ M) k8 d# o8 [* \. J& P) Y8 ]) _        {
, h. S" ]1 X& h/ S' f                .active_low = 0,! E1 P! Q# a/ L, I* C
                .gpio = DA850_USER_LED1,( `! K2 z% M$ Y1 z/ b
                .name = "user_led1",
' i1 Q9 N( K' [$ O3 ^8 C                .default_trigger = "default-on",8 b5 D3 Z2 m% y
        },3 @3 Y  P1 S% h4 E3 W
        {
5 P! o0 Z! q: [: V1 ^                .active_low = 0,9 z; R$ m' M$ s
                .gpio = DA850_USER_LED2," h' ?/ {- W+ C8 k- n$ \0 L4 V
                .name = "user_led2",4 \) ]5 N0 k/ r+ x! [, }
                .default_trigger = "default-on",
# r7 f2 @; y% K5 _6 }/ H3 l( G7 v        },# M( b+ P( g8 n/ n4 C% `
        {7 z5 Q8 J) B. R/ e0 p
                .active_low = 0,8 Q. s" a$ T- U, h& v
                .gpio = DA850_USER_LED3,
" }6 a) ?2 U, a0 z                .name = "user_led3"," r4 B5 K0 w! W$ Z# u* g
                .default_trigger = "default-on",
: ?) h  v0 s' Y* P# p) K        },, s* X7 n# H$ y
};8 ?  R- F5 @# F5 a

$ h. |, B; d& G& ?, D- [- q5 Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 a4 g' k- w5 [* {
        .leds = da850_evm_tl_leds,
/ b' r' ~. r$ Z& K5 c+ t  d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- j1 `( c% ?/ G& q. _  N8 Q
};
. _$ ^" z1 X: R9 r2 \9 ?3 @4 y$ g3 _
$ c( W% w& y/ h: Astatic void led_dev_release(struct device *dev)- O0 a. I0 b, f6 Z4 H) R+ a% D/ g
{$ f$ k9 I% J/ d' d# y
};
4 D9 B0 s4 C/ g5 v" ]* W  v% y* ?3 n5 k/ W" h1 x5 w
static struct platform_device da850_evm_tl_leds_device = {6 c+ ?# H, p8 f0 R
        .name                = "leds-gpio",
4 N+ M1 e$ r0 R4 ^8 `4 M+ |0 ~        .id                = 1,
2 S2 a. L; j- \        .dev = {: b$ f7 V& u) z; o2 z1 n9 |- n2 Q
                .platform_data = &da850_evm_tl_leds_pdata,
4 V- S" S9 b" Y1 e( I3 D8 K                .release = led_dev_release,
+ O' P" o2 P! {/ q( y3 H+ X        }
6 n# F/ j$ ~) x* t" i) S" Q  J};
- b3 i1 ~6 P, m# T# J) r" x: B; v* a/ S% A4 d
static int __init led_platform_init(void)' H! D; J4 B  g1 L1 ^
{
4 r8 ]& _1 N  R        int ret;- d/ {9 ?% ?8 A  ^" \# M# E& x
#if 03 J+ L) y4 x- ~. c7 G: g" p0 M  n( F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- @% c. Q: `" E) b. m/ E7 a        if (ret)
; ]1 x+ y; F4 Y& m8 `- R8 D; h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ H  ^5 V- w) h                                "%d\n", ret);
' H( g8 c# {0 M3 q! ~( D#endif
# n1 q$ A* x3 k' g# W7 J        ret = platform_device_register(&da850_evm_tl_leds_device);) ]1 c; q8 d' W' q, w% w
        if (ret)
0 E+ b/ n7 y1 N& r+ ~& _                pr_warning("Could not register som GPIO expander LEDS");- W: V, I+ D1 U5 c
        else0 J' p. L5 s' t2 n. n! f
                printk(KERN_INFO "LED register sucessful!\n");
& C  p! q& o3 |4 v
7 I# z: v* W- a: `" m        return ret;2 O9 E/ F, h9 o, y; C# e
}
8 |3 i% m( N$ A+ O' ?( K! W% M- _* X5 V" d
static void __exit led_platform_exit(void)
6 p" g# p; l) c& ?) y4 n{1 R8 U% Y& z8 z/ _
        platform_device_unregister(&da850_evm_tl_leds_device);
' i. V( |1 u; _9 o/ C9 a* ~4 a
" j2 x: _6 X7 m        printk(KERN_INFO "LED unregister!\n");
: q+ o5 c8 X# u}
" v/ M7 _  k: r2 J! e; F  a9 Y1 o( s, F% {0 z, g
module_init(led_platform_init);
- \( C* S# H% B) `$ k; Cmodule_exit(led_platform_exit);$ J) `' z6 \+ P! t
: D/ z  \8 f* |
MODULE_DESCRIPTION("Led platform driver");3 e# V2 \% K$ b! [* V
MODULE_AUTHOR("Tronlong");
  B6 Q$ ~3 W, r, T) sMODULE_LICENSE("GPL");# s6 W1 Z7 t7 l+ s

& e" {, `' B9 ]: }4 N" {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-2-27 17:16 , Processed in 0.042589 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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