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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! S  v; l3 \- M9 w, h/ ?% x#include <linux/init.h>
5 d: K' U  V: u2 R8 c#include <linux/module.h>
4 x$ R! w# }/ f3 o5 z#include <linux/kernel.h>( H3 b9 p4 n5 G3 _$ s
#include <linux/types.h>
4 _5 X$ d9 ?$ `% C1 P3 I#include <linux/gpio.h>/ B4 y3 s! Q5 |8 [5 z8 w6 O
#include <linux/leds.h>
" _5 W4 {! q' Q% R#include <linux/platform_device.h>+ C0 v' R1 P7 W
) N4 G) x0 a' S
#include <asm/mach-types.h>3 X! _& S6 Q+ x* a5 ]8 k6 [
#include <asm/mach/arch.h>
/ [9 ^, u/ K2 |# F% r- s  t#include <mach/da8xx.h>
! _/ X$ U0 c- o& v* f#include <mach/mux.h>; t6 A# k% e- s3 f- S/ n& s

0 n# Z& c6 V+ m2 V  y#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): d1 t. r, G, F: u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ d4 q7 s% K5 E9 `/ I) u* }! J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 s/ I! I9 u: [, O0 O. \% S- g
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" O2 h) z0 r+ S5 l9 H4 w4 Q9 x, S
+ t& p: W) r! }. h6 p/ ^/ [. w, F
/* assign the tl som board LED-GPIOs*/( \2 ^1 [9 |8 q/ C, k. a  v
static const short da850_evm_tl_user_led_pins[] = {0 |: c) A$ \% `  g
        /* These pins are definition at <mach/mux.h> file */0 L2 G5 b) c3 t+ N5 X( F3 w/ x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) l  O+ s' v) E# s: t        -1& W( G) o, [/ f& @. C: k, @
};  R6 i2 i$ W9 ]
" F( q! I. Q5 a- ^$ }" j5 n# O# S
static struct gpio_led da850_evm_tl_leds[] = {" _7 q$ D& D9 f
        {- B8 c' E. Z7 {7 O5 f' \9 q' ?8 u- ~
                .active_low = 0,( e& X; S" a. q- `
                .gpio = DA850_USER_LED0,7 I( B; q6 i5 c7 u. Q5 v" `
                .name = "user_led0",
4 J8 X. [; O! V+ Y" t                .default_trigger = "default-on",+ @! ]4 j# D! a7 s3 W% A( F
        },% u9 H5 Q5 X: l$ ]
        {; a9 c1 q4 B1 z* |  M# N! ?
                .active_low = 0,
% T# C: A% L& l( A: @) H                .gpio = DA850_USER_LED1," `$ J5 j& ?& k" v1 U
                .name = "user_led1",. N7 A* B$ A9 k4 e3 e
                .default_trigger = "default-on",
& q3 r, k9 X% Q! D7 a+ `  f        },/ V4 \* p' D+ p8 Q* |6 q9 ~
        {
3 K+ V, }% f* p% J# i                .active_low = 0,
" R4 f) Q* f$ {3 D& [                .gpio = DA850_USER_LED2,
* {2 B7 T$ f) c$ h6 K2 h                .name = "user_led2",
' \' ]' q% ]' T$ A$ v. C7 l                .default_trigger = "default-on",
4 W, ^. h1 P- s( w& V- Y: ^        },
/ Y7 I" L- f( s- A8 i        {
0 Z5 ?  d1 q. J" x/ Y                .active_low = 0,: ~: G" i% X! ^2 I
                .gpio = DA850_USER_LED3,- w7 e4 q, ]( w! \, S  e
                .name = "user_led3",
& ]0 k; \7 m9 [# Z& R                .default_trigger = "default-on",% ?( p! y* o1 J) I( C2 t
        },
6 n, e, K9 P0 Y0 b5 e* s# k};% t* i5 V/ x$ G) T5 d; i2 e

, J0 \! |0 F$ s4 `( dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& C0 o; L2 H1 _4 h6 I        .leds = da850_evm_tl_leds,  B' i6 L/ j! h3 ^( s' U
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 ^5 Y' M% f9 F8 f/ \" |; C};  U8 L' c" a3 _# |8 A9 G

3 x2 T, P. s6 J( \4 |; sstatic void led_dev_release(struct device *dev)
! s: O6 \/ ^/ a{2 [5 T& ?) N( `8 W& ~7 [& t9 M8 P! `
};
1 W( V* X, T: }1 R' ^# s0 q1 F1 b2 q: @9 h+ j4 q4 c! u
static struct platform_device da850_evm_tl_leds_device = {+ ~: ^7 W( m& N% z  \$ C. _
        .name                = "leds-gpio",
" x; S4 X, u8 W8 C+ x" U        .id                = 1,' h# _7 L7 w2 u! T3 Y% q
        .dev = {/ q: `5 s" v0 F$ W/ E, e; C2 w8 t
                .platform_data = &da850_evm_tl_leds_pdata,) g0 a" v  }$ T' c0 @" Y8 a
                .release = led_dev_release,& F  L8 J, k( M4 a
        }
8 Z0 I2 h& i( h( K. m  q};
6 b2 V* c2 s9 s  L: {. z) r8 t7 \- L% c# g: z' _
static int __init led_platform_init(void)3 `4 D( L) r" A: _, w$ S% }* Z
{
0 q) q/ P# `) B8 }  S3 {. \3 b4 A        int ret;
! j6 J' o* ?; i#if 01 ^5 @1 ]( u0 n1 j! w' |
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 Z/ p. e+ T2 |6 d        if (ret)
2 L$ ?* n0 v6 M1 B# C; {0 x) Z; L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# b; @, @) M7 E7 q) X7 G, [                                "%d\n", ret);
+ A9 O- v& q" }& L#endif- b  @3 _- m4 D0 o+ f- x" M  @: ]
        ret = platform_device_register(&da850_evm_tl_leds_device);
% l1 U0 K% D/ G6 c# {        if (ret)
1 F) A* ]; y7 l, l5 ^4 O# L: j' ~3 B                pr_warning("Could not register som GPIO expander LEDS");
& Y( ]1 j  Q1 y        else
4 Y5 q2 K" }5 k: u                printk(KERN_INFO "LED register sucessful!\n");$ i5 @  H  n; E$ s% R% E' P$ C
! S9 p7 F% a+ p* y* p. e0 x: X
        return ret;" [: l( w- A3 ^/ O& r+ t
}/ x5 e6 [$ }3 e' q2 p3 s
- U2 a$ b, `4 l# S4 X' k
static void __exit led_platform_exit(void)7 Q3 e3 B$ [$ m# ?# D
{1 _: x- L  Z! s, @  x
        platform_device_unregister(&da850_evm_tl_leds_device);
- p9 x" [% `" G2 Z5 k: U  v3 \- [- \; ^
        printk(KERN_INFO "LED unregister!\n");
# u* ~1 S. r. `}3 J# B- i: U7 R
5 y- Q; v" ?! _  x+ v
module_init(led_platform_init);2 N- K; A9 h3 x% ^% B" q
module_exit(led_platform_exit);' p* \! n3 B- T8 }; {) y% R% X: v
* N7 N% {+ G4 y+ g  y
MODULE_DESCRIPTION("Led platform driver");
; J7 ^$ k  e' t& a9 Y7 O, L+ yMODULE_AUTHOR("Tronlong");
( X; H" n8 @. SMODULE_LICENSE("GPL");
# t4 [. \+ W0 m3 R2 t: i, O4 ?- ]8 z- }6 N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 01:04 , Processed in 0.041512 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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