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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" N* X0 w# U6 Q5 a#include <linux/init.h>
/ i- Z7 i  C- M- F9 H#include <linux/module.h>* L, [4 q8 L9 O. w0 X2 f
#include <linux/kernel.h>
# A7 T) m6 M+ v0 I3 e1 h  h#include <linux/types.h>
0 G& t- A: I& i$ _#include <linux/gpio.h>
/ Z4 }  d% H8 J) \, N7 G' |6 x9 d#include <linux/leds.h>
1 P: `% S9 z( H0 f#include <linux/platform_device.h>
0 V3 V/ W9 g+ X. s( x/ U6 b& h; c7 o/ R
4 Q% T6 a8 T* Z# s- k' G#include <asm/mach-types.h>
, b; n7 [; q4 B+ k- y5 c# [#include <asm/mach/arch.h>( J% [: M! R- U. u8 i' N
#include <mach/da8xx.h>5 ^8 U2 J( p" e7 {+ f
#include <mach/mux.h>- e0 n" R! D5 g/ ?5 e
3 Y8 g+ d# D+ s# @* \
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- z8 }1 U3 d8 e! z; o, l#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# I& r) R- O1 v% ^+ L6 \4 U0 |#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ G% p2 A" f0 f4 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; G9 a6 d( x& R! w8 K$ N( o5 j) K! ?5 }
/* assign the tl som board LED-GPIOs*/4 p5 a" a- \- A" ?( M: j  ^
static const short da850_evm_tl_user_led_pins[] = {
6 S8 R- N8 L5 ?: G        /* These pins are definition at <mach/mux.h> file */
1 e- z; ~" o" x- _3 p7 N: ^8 k        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 H7 z5 N/ w3 s- X5 s4 e
        -1" o/ R# E, D! s  V# i( j9 @
};3 y+ X: V2 J% q3 l! x

* ?3 m! [: k! C: c& C' p, dstatic struct gpio_led da850_evm_tl_leds[] = {
. Q, Y4 D% }( p. O. X        {7 `. e$ f7 T+ T- Z2 V8 k
                .active_low = 0,' g/ x8 H; z6 ?  w" o
                .gpio = DA850_USER_LED0,' q8 w! K4 N1 O6 e
                .name = "user_led0",8 C3 ]( w0 s/ z; t6 D/ R4 Z  f8 s5 k' i
                .default_trigger = "default-on",
4 v- ~( D- M6 C2 y" u( O. X        },
/ X' l8 G7 o. d5 X* h  P$ p        {
6 K' ^& t* t+ o5 @' {% R                .active_low = 0,
( ~. e( t4 F0 N- t# \+ Q6 F) x- b                .gpio = DA850_USER_LED1,
6 ]- \& g! W& F; e                .name = "user_led1",
) a3 M& c7 G4 Q+ Z                .default_trigger = "default-on",! S( ?7 k# I3 `9 Q- U, B2 Q- h1 B" f
        },
& G; c) m, T7 g2 R9 L) [$ o        {
4 [) L: h7 z2 K: e7 r/ V                .active_low = 0,+ w! H. ~' A. f) ?& L+ E! \
                .gpio = DA850_USER_LED2,6 o- `- X+ s: B" l
                .name = "user_led2",
# s3 I: n! ?( a, t. N                .default_trigger = "default-on",
+ g9 p/ X7 ]# f1 x9 y  m        },7 ]- u1 ~7 I8 t6 k$ E
        {
; J5 T4 n7 P8 M                .active_low = 0,6 }9 j. f, S- }7 R
                .gpio = DA850_USER_LED3,6 z; X8 @: u' ]" c
                .name = "user_led3",( s- `% r1 ]" c6 K" j) O' |9 X
                .default_trigger = "default-on",
# \% ~  |7 l8 e' t6 n        },
3 u# a* A" j( `/ x5 e, L1 Q};
) ?: k  L3 ]) ^7 ?9 m$ r2 C4 X: M6 \% {) J# D6 B1 W
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, K. [, X2 G$ x5 ^% \- t: m% N
        .leds = da850_evm_tl_leds,
: q4 |. U3 v& C" t/ a# K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ \# E' o$ I- A# d+ \# w( y' j
};
9 t" g: u" Z( b' V" Z/ k% D# k# i) x( F, g
, P0 _  A9 ~' K, r6 k$ n- [( G) P0 a/ hstatic void led_dev_release(struct device *dev)  `1 _' i* R* A& `" ^& I. L/ F: s
{0 [& C$ E% O  H7 v8 x6 g* l$ R
};& s6 f5 i+ [- F, [: M$ I
* g6 [; W% E! e% f- Z1 G
static struct platform_device da850_evm_tl_leds_device = {7 X# Z% Z0 M4 d' m; e( a1 m
        .name                = "leds-gpio",
$ t6 \6 C6 v) M" k3 ?        .id                = 1,
4 P6 J4 R  d7 ^7 d0 m+ S( J0 M. z2 p        .dev = {! q+ c/ g7 A1 h& s2 K
                .platform_data = &da850_evm_tl_leds_pdata,
  q8 O) X3 t& Q0 {                .release = led_dev_release,! u8 J! d& z' `7 T
        }
- G2 Y! V& r8 ^& T};; y* t; N9 B/ K1 v: b
8 e2 g4 @8 J4 L2 q! k
static int __init led_platform_init(void)
# t/ y1 ^& b! A3 l8 Z{/ k$ P+ Z7 x( _) Y% `, Z* X
        int ret;
5 Q2 W/ o" B3 h( ?' o2 J#if 0
* t9 O3 j& p5 z2 Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) ?: h4 k0 g! }; X0 J' h* i        if (ret)
9 Q, d: W8 z0 ?, z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 S) h" d! z0 a- i  o
                                "%d\n", ret);& o  O2 |# {" X+ Q$ D
#endif
: f7 g% E2 x; L        ret = platform_device_register(&da850_evm_tl_leds_device);/ }# c" H) n( m/ L  S1 ]+ y. x
        if (ret)# P& l; d8 A! B. U8 `0 |2 k  {
                pr_warning("Could not register som GPIO expander LEDS");
# G" u1 G# O$ G' j* c        else) B. t+ n; N9 g, d  K  y7 c4 A
                printk(KERN_INFO "LED register sucessful!\n");1 P0 `8 R9 M0 a& V

7 y! b$ T' `4 P6 d. j" Y3 V        return ret;, j/ j* x/ Z% O  H/ _; X
}
% {' T7 P( w: p& y9 g4 f' ~2 {, Y( @6 Y
static void __exit led_platform_exit(void)
$ q( s2 W6 [: Y' {8 g{
# d0 u: k: d! [/ x3 L        platform_device_unregister(&da850_evm_tl_leds_device);2 K- }/ ~9 ~  g  Q+ S
, P' m' G/ Q+ L' ?
        printk(KERN_INFO "LED unregister!\n");0 S) u/ \; n0 }7 s2 i' I% p
}4 q. J! R* i, U4 w9 D* X

9 @/ _' \& E- O, Emodule_init(led_platform_init);$ M1 e; v0 D8 @6 i
module_exit(led_platform_exit);( v  A. A5 v5 o7 p
8 H: b! |/ b5 F5 L2 j* ~5 t
MODULE_DESCRIPTION("Led platform driver");; Y0 a3 b$ h. B( @9 \, i$ u$ U/ s
MODULE_AUTHOR("Tronlong");
% q" g2 e  b& Z: u' e7 M9 P+ L- k+ PMODULE_LICENSE("GPL");
% o  p2 H( F: X5 }) G' F0 z" d$ Y9 \7 E, I0 B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-14 06:17 , Processed in 0.039379 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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