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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 v" U* P% d3 A8 n#include <linux/init.h>
& G1 x% D+ L3 r( m4 G#include <linux/module.h># J/ C  h3 g4 k; l( U2 R
#include <linux/kernel.h>
* w, X1 R9 }: z1 ^2 v! b. q/ D#include <linux/types.h>
: e$ S, u# f  l5 J#include <linux/gpio.h>% V4 b' T+ ~$ A9 ~! S
#include <linux/leds.h>4 {* F' ]* [7 e
#include <linux/platform_device.h>8 O: e) L4 A6 i# k8 V! R. O) A
# m. T1 \3 a9 G! n
#include <asm/mach-types.h>
# V- O5 g( Z# {4 I6 g#include <asm/mach/arch.h>0 G( Z* F- L0 |8 R. N+ T
#include <mach/da8xx.h>0 p3 q* k6 O# B6 [/ _
#include <mach/mux.h>, r1 T" G2 p7 O, f9 w7 b
( b0 s. N, w- s* @- t
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 W* i6 h6 ]+ l: z" p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 I9 \$ N8 c. N7 R1 n' j#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 l( N* g% e  ~: _+ o4 X
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* Q% a% J- @) O* n. W
9 U5 I$ v8 W/ m- I# ?
/* assign the tl som board LED-GPIOs*/
' b1 u  y- o" E# q( F1 B6 Cstatic const short da850_evm_tl_user_led_pins[] = {
! D% B, }/ O$ \1 [, L7 Q/ P        /* These pins are definition at <mach/mux.h> file */
$ H6 G4 C/ D: u! \3 k6 g        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 \* a+ i& L4 L7 t        -1* ?. G# ~# b0 z) ]( s* {
};$ L, ~5 A* X1 B9 T
1 W  E; c" N: T/ d- q, p+ N
static struct gpio_led da850_evm_tl_leds[] = {% q1 D7 t, P% Q' g' ?( ?& g# t
        {
( q& U; n; ]- Q! R* I                .active_low = 0,$ e3 J8 a; a- \# `6 u* e6 S* K( @
                .gpio = DA850_USER_LED0,! z- [8 s! x" ?. f6 O& O+ ~) u
                .name = "user_led0",
6 ^% k8 e5 N6 R  f0 \3 P4 D1 X                .default_trigger = "default-on",
) f  c& L% z8 \) m        },
/ R/ a6 S% t8 x4 x3 X        {: W1 I2 G! C. w3 ]% `3 J7 c
                .active_low = 0,
" Y& l& `, t8 y( n4 l0 G                .gpio = DA850_USER_LED1,1 I& r- V8 g& j0 e$ k
                .name = "user_led1",
) b8 |/ u/ ~1 z( D5 }                .default_trigger = "default-on",' v+ }: d9 {# m8 [( W8 r" v1 s
        },- P7 G. G: W- A3 P' e) n
        {1 b7 c4 T! h& k3 [: ~/ }: o9 [
                .active_low = 0,& v2 p5 E7 r- [8 E
                .gpio = DA850_USER_LED2,
- i$ v# C+ H% D/ T7 z                .name = "user_led2",/ j1 a  h. `: V; \: g1 |
                .default_trigger = "default-on",
2 M" B" c8 s3 {/ T9 D        },( i% q- }, ?  L) Y, L  x6 M
        {
1 n" r5 _6 K3 @                .active_low = 0,
0 z9 \. q7 h. c- K* w# h  ]# W% h1 A                .gpio = DA850_USER_LED3,
9 }3 G! E5 `1 R% v                .name = "user_led3",
) D* J* Z0 Y. s' C- i- P5 w                .default_trigger = "default-on",
) V( W( y- w3 R6 h/ h" ^        },
9 P! P' a+ P5 b8 {};
1 u% T2 u& s  p1 }2 z8 S1 Q2 B4 Z, d: L  w& B) \
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' [, ~9 ^; O8 |7 P0 n' j' M0 z$ m7 f        .leds = da850_evm_tl_leds,
. k+ E( H3 [. m2 |( E7 U0 p        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 F# m: X, d+ {- q8 p( c
};
7 {. v3 F6 A' v+ V+ B" B" {5 e( p" ~$ S/ q
static void led_dev_release(struct device *dev)  d* Y9 H! q( h' R
{
0 K" o& D0 c2 g. N};/ k5 V2 V* L6 `  R" s

: K  \5 Z. W# Z% @2 c1 Y* ~static struct platform_device da850_evm_tl_leds_device = {
0 J; Y$ D) G0 c8 q        .name                = "leds-gpio",2 A/ J6 f7 F2 L+ z4 T9 [
        .id                = 1,: ~3 d' P6 W) m# ]0 _, [+ p
        .dev = {7 [. G9 X! T/ D0 a+ K8 X- c+ k
                .platform_data = &da850_evm_tl_leds_pdata,
& c9 h* J* k& `: j                .release = led_dev_release,: _( F. b5 O/ ]! c/ O
        }
8 s7 s: g, @; z/ L};! q, P8 ?6 Q2 K7 ^$ ?, S
0 m; W% W/ E% H" m7 |. w
static int __init led_platform_init(void)
- x! y' T: h: t' d{2 {8 \( V6 k1 p9 J0 C+ X) k
        int ret;
9 _' @6 h$ `! C# Q$ s#if 0
) R/ i( ?3 n2 k2 R        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 o4 ?  d3 `$ P5 M! B3 F        if (ret)  ?* ^# D4 D& U" q7 ^' E7 K
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% e" s7 [. @- `8 a' \7 d; F
                                "%d\n", ret);9 s. }6 E5 i' @
#endif
- T; \; U2 O! @) r$ G0 q' r/ g        ret = platform_device_register(&da850_evm_tl_leds_device);
' E2 c/ W6 j# O        if (ret). V8 F0 E) e8 h; T3 A
                pr_warning("Could not register som GPIO expander LEDS");
$ G5 Z) G$ M+ i( X9 P        else% P: `1 {+ K9 ~* o
                printk(KERN_INFO "LED register sucessful!\n");
, O$ I) L# w' T- ^8 z4 D4 ~7 |0 P$ x6 G6 m! I
        return ret;9 b( Y$ ]0 y* I0 c8 Y
}0 T" k& U3 w) G7 Y# |: T! }6 [: G* M
. Z8 s1 N3 c7 P8 T: g
static void __exit led_platform_exit(void)
5 Z- Q' e3 b/ }4 ~9 r9 g* D) E* p{
4 W, ]/ R4 p# @        platform_device_unregister(&da850_evm_tl_leds_device);
- d5 o4 n1 g0 q) y( B- F9 v, \0 e! ^: @( ^5 z' k, W4 j; Z$ l
        printk(KERN_INFO "LED unregister!\n");) w& E$ H5 G1 V9 v" D* d( r5 a% Y
}/ \8 I, F$ _& [; B2 j+ B7 ~3 q
8 Z/ ~0 [. N  V' q
module_init(led_platform_init);1 C! B$ o  K$ b( l( H8 a3 Y
module_exit(led_platform_exit);# d& G! M4 E: C8 f& p8 O' U  M$ f6 b
7 x2 s1 h7 g. G' i) R3 }- a% j% q* q
MODULE_DESCRIPTION("Led platform driver");. v) Q! K: C, g" e+ b  c" S
MODULE_AUTHOR("Tronlong");, T0 Y! v$ g" u3 j8 f& N
MODULE_LICENSE("GPL");
. ]) O, w$ ~( Y
. r- Y9 Z0 @( M$ }& S/ W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-11 15:26 , Processed in 0.047794 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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