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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 F+ ?+ P. h# ?0 _9 m3 Q2 t
#include <linux/init.h>1 i$ ~1 ?( W7 ^% k- k& a
#include <linux/module.h>
  X/ \. g6 s" b& S#include <linux/kernel.h>$ {' b" t& S% M' g$ k% K+ x
#include <linux/types.h>+ T0 @. I  I) o6 n) \) X$ i
#include <linux/gpio.h>
2 k$ S) X) _- e9 Z3 @( _#include <linux/leds.h>0 H  X( e) \+ t
#include <linux/platform_device.h>+ ~$ H  ~: f# r9 t+ f
7 R, ~" m# h. O  Z' M0 w
#include <asm/mach-types.h>
- `& [( ?" T! G+ O  J8 r#include <asm/mach/arch.h>
2 L& h* r+ y2 D#include <mach/da8xx.h>( ?) T) S$ |; H2 H5 e" L0 ~8 S
#include <mach/mux.h>
( S& }. y: q( D; {* w7 ]9 A+ Z3 v0 L# V- E/ u  ~1 `" \2 b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 e* y6 w, H8 R7 H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) U& C  z  W( L: W! f$ Q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 s6 H: Y8 L; }; p/ ^! z/ J( R
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): P5 U. a- k, t/ S
3 d  \3 g6 G( C$ h
/* assign the tl som board LED-GPIOs*/
7 k& g  Z3 N5 {/ w% x3 Kstatic const short da850_evm_tl_user_led_pins[] = {
- x( }0 B$ {, a5 [0 Y        /* These pins are definition at <mach/mux.h> file */
: O/ K/ P+ `: g/ f, {/ U( g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 n+ b- l9 a7 m) n
        -1' \3 M8 ^8 i8 [# ?% A
};" k% @: T# p# f& Q  I9 s6 @  u

6 J  z* s& q! m8 q4 h2 o7 ]7 m) astatic struct gpio_led da850_evm_tl_leds[] = {
  C) D+ Q1 O3 N4 T7 c; e        {$ u7 `7 P4 D# [5 q
                .active_low = 0,% {/ d1 C  H; c) g! t
                .gpio = DA850_USER_LED0,) p6 _6 @  |, L' L6 Y* C8 C/ N. U
                .name = "user_led0",6 y. r* t$ E; g" i$ U, ?
                .default_trigger = "default-on",
- C# F& P4 a' M: U        },. Z  Y+ [1 D2 J6 n" h& g
        {! P6 @4 O$ [) u1 v! J/ p7 ^
                .active_low = 0,9 k5 m4 W) ?) \* X8 M; @) K
                .gpio = DA850_USER_LED1,) `; d6 o9 b* |4 C, E
                .name = "user_led1",
+ J( v% l! ~9 w# L: _5 x                .default_trigger = "default-on",& l# t/ B7 O# D. Y/ b; E
        },' }+ ]" b) h/ {9 R1 D
        {, ]' _# y3 ]* P3 |
                .active_low = 0," Z: o, h+ v6 k
                .gpio = DA850_USER_LED2,
- g4 K! c7 p' F3 }% Z/ J                .name = "user_led2",5 x( G1 a7 [* r3 H
                .default_trigger = "default-on",9 z$ B7 D9 x+ U% p9 H
        },
+ [9 R% \: N& W3 w+ g( ^        {- C5 k* Y$ c' t7 ]  H& }( C
                .active_low = 0,
" [- \9 _2 x% ~  z3 j$ i                .gpio = DA850_USER_LED3,, M0 V0 G$ P( c3 f6 O7 `0 t
                .name = "user_led3",  R  }% W4 n2 a& _: z
                .default_trigger = "default-on",7 @, S9 X# e' _; B% g6 a4 i7 F
        },6 {( ]2 d) @6 C* H
};
" @( W9 _- O; {1 |8 M- `  a+ J- V7 O. E7 g* Z# h9 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  L; h: i" ]. C
        .leds = da850_evm_tl_leds,9 P& c9 y7 w) |# ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 [3 a6 n. R3 l};
5 {1 X' m3 ^0 q. C4 O  q; y7 T- ]2 J7 c% E) B7 Y, w. B& {
static void led_dev_release(struct device *dev)
' V* z' \) ^9 ~0 p% F{
; b$ W. Y5 y- y0 ~- B};
5 E: f3 Z+ ?: g6 f2 y3 E' m6 `6 z- E5 s$ v
static struct platform_device da850_evm_tl_leds_device = {: D1 }& p. n) l  ^4 K. Z
        .name                = "leds-gpio",( e4 i- k9 V8 v! N( X
        .id                = 1,2 x8 U! a4 v" M! M
        .dev = {
' R  M3 E2 M  s  d: q, G! z                .platform_data = &da850_evm_tl_leds_pdata,* }- j+ Y/ W& k  ^# }
                .release = led_dev_release,( A( g' B# ~* d4 f: W7 R* b
        }
$ f+ p9 H, c; t, Z9 d2 L};4 X6 D4 m8 {3 g! a

( c' f" j4 O  e4 {) ]static int __init led_platform_init(void)+ e4 f2 x, i, T! Y; [
{& X9 g  F1 k/ |, W- P) @" N
        int ret;
2 H3 |5 _0 Y" E, Z#if 06 v3 X+ L. i  d% \- c$ ^$ n
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
$ l: ~! c: j: B( E; R; {4 P        if (ret)
: [9 f, [5 P8 v9 j( Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. D/ k' H4 g3 S4 X, `, E/ k  b                                "%d\n", ret);+ \. l) G: Z( }& o1 g; g
#endif
  w; O! v9 @, s/ C0 R% A8 j        ret = platform_device_register(&da850_evm_tl_leds_device);
, y1 _2 }4 ?/ k. d  d        if (ret), H" P8 V" W9 q* O! K2 ]
                pr_warning("Could not register som GPIO expander LEDS");) Z. ^2 M( C" O, I' c
        else' q2 F9 ]% F, s
                printk(KERN_INFO "LED register sucessful!\n");6 w/ K2 @! x+ g6 ?/ F+ A
# C( Y$ e6 Y: W+ m; r/ Q6 R& C
        return ret;4 e: `( T$ M& d/ P
}5 x  {" L, Z/ e& a+ b* i

; ~8 A7 n# q- t* ?+ w' J* V, g# _static void __exit led_platform_exit(void)
) r0 J& u& ]" q* ]# K' R{9 {# R( N; |, U
        platform_device_unregister(&da850_evm_tl_leds_device);+ R! C; o' j8 [% f7 T

: H7 e0 {! n+ h4 E        printk(KERN_INFO "LED unregister!\n");
. @5 [, F: m  @) }; p6 Z}# f  |0 d" G: I+ D$ \5 U/ x4 _

; H% X& G( D1 V5 W9 A3 S0 bmodule_init(led_platform_init);
/ d7 p  ^+ J- w: {& c2 U& _module_exit(led_platform_exit);; H9 b% _2 }% ?% x
7 h: ^8 ?  u' V, D! n/ Z8 M5 ^: e
MODULE_DESCRIPTION("Led platform driver");
9 Z/ g/ W. z! @, B) t7 f" w/ l* \MODULE_AUTHOR("Tronlong");# Q% P7 c9 `9 e# H0 B* y0 A
MODULE_LICENSE("GPL");* W) p; c. ~1 r
. q4 D1 Q1 K, m6 m: T+ {3 q( T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-14 09:15 , Processed in 0.036035 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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