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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
( y- o( Q8 I+ G, {4 X! [  F2 q( c#include <linux/init.h>: a: v) a/ M0 @
#include <linux/module.h>) u( E2 |  A; l- Q# O
#include <linux/kernel.h>, q1 x- E4 @' @
#include <linux/types.h>  T1 I0 s# k4 o+ @4 Z
#include <linux/gpio.h>
+ N  i" M. ]- e1 n7 W2 o3 Y' j#include <linux/leds.h>
1 A4 p6 ~. r4 J6 l#include <linux/platform_device.h>
; G4 Q" }* u5 c- g( y* }9 q
4 s, G9 v# f4 Q" Z2 o#include <asm/mach-types.h>
3 j. y$ u" w9 n: f& x#include <asm/mach/arch.h>+ [+ D' F# E' v1 S8 e
#include <mach/da8xx.h>2 ~4 ^3 b+ I: B6 s
#include <mach/mux.h>
% T0 C+ E8 K: p2 z6 V8 t( {( u7 g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
% L: @$ |5 p: `7 h4 M( @#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, f6 j* e- [$ B4 L. o# @#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 |7 @( t  ?6 ]4 K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): T9 X8 e' n7 e; f9 y% B! D# b
% G) n" h' I7 O3 [$ F
/* assign the tl som board LED-GPIOs*/4 s. p: D  G8 U( O2 G. @3 I
static const short da850_evm_tl_user_led_pins[] = {8 i7 r7 x6 U  Y# N  f
        /* These pins are definition at <mach/mux.h> file */: \. W& c$ V( w! a: t( b3 l5 N5 D3 h
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* b! P( a5 O0 i' |" u; ]! V& Q        -1: E0 Q! R8 n1 g. w7 r
};, E- A+ U6 O; w3 w4 F4 I7 s5 e/ z
. _0 I; v/ z5 C& Q; \! C( q# p
static struct gpio_led da850_evm_tl_leds[] = {
7 K; s: {( G8 T0 t        {
% k2 Q3 Q7 I3 ^4 s; m                .active_low = 0,. ^4 P: a4 ^1 d; g6 T+ {. r6 ^
                .gpio = DA850_USER_LED0," G; E; E$ Z! ]4 m
                .name = "user_led0",
' J) s% ^+ }4 p- S0 x- N3 E                .default_trigger = "default-on",
! V+ a0 A/ m0 w# ]* \4 @: h2 _7 a        },
2 {# V7 y9 z9 A% |" b- a1 {        {
3 p* f' k) E% v# s% Z2 {! x. w                .active_low = 0,) q( K6 x5 l8 \5 s/ Z
                .gpio = DA850_USER_LED1,
7 A) M1 Z4 D; L+ S4 Q, g% O7 Z                .name = "user_led1",  v0 l6 |8 p( Q' T
                .default_trigger = "default-on",
5 I$ r' |4 ~$ f! X: o( n# M# n  ^2 I        },
4 I6 }3 c0 L* L0 L2 g; t0 V8 X        {( T, K7 |) i/ J7 y, z9 e% ~7 {: ~
                .active_low = 0,
2 m4 J/ l1 l9 A! H                .gpio = DA850_USER_LED2,
) I9 r3 K4 [9 ]5 D& u+ i                .name = "user_led2",* `6 ]5 i# ^3 \9 _: T$ X
                .default_trigger = "default-on",
6 }2 e: [  ~/ v) Q/ [/ g        },
- V3 n% Q9 k4 z. A/ X! P! V        {
# n7 J$ Y6 B) K% I% {                .active_low = 0,4 w. w6 U& F3 |& B& P2 ^
                .gpio = DA850_USER_LED3,/ j* X( y  B' g" \  H0 Q- i
                .name = "user_led3",
. Q+ ?/ x. b& ^                .default_trigger = "default-on",
" c; d! p0 k, }! x& m, j! ~        },
' v# H; p7 F5 J6 Y1 m};) B) x+ [8 d: i/ O2 K! I/ |9 p
0 P, h9 N9 y/ Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 z; C: B- O* R; `
        .leds = da850_evm_tl_leds,
  j* l9 w( O+ r9 K; l        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# Q2 u" u& m# J  ?$ L9 Z};4 L" w: e) K* D, x
+ M- x( r  G0 s
static void led_dev_release(struct device *dev)7 x' _9 r' x* N* V
{( O0 I3 l# r$ I% `1 A
};
9 e3 z& }, p, L) Q: I4 X9 P+ d" g
static struct platform_device da850_evm_tl_leds_device = {
1 a8 e) w9 W/ C" [9 C( S, T5 i        .name                = "leds-gpio",
) X) W8 _; s; `( X$ m        .id                = 1,7 N- _; L- u( x
        .dev = {
: D" x" I, X1 t  M                .platform_data = &da850_evm_tl_leds_pdata,1 W: Q9 D, A! O2 v/ X" v
                .release = led_dev_release,
/ x+ D& ]7 j" Y' {        }
& o( F, a! E: Z};# c: @# }3 J7 {) q  `( X
$ F) w6 w$ o' H& \/ A) U' ^, ]
static int __init led_platform_init(void)
5 a/ k: M, L7 C3 N5 E' @( E6 O{. G& X+ T5 T. u' d+ T" a
        int ret;. J1 Y% ^! x& Y/ g0 D! k
#if 06 u+ [/ l5 \4 i: z/ q, K
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& r( H2 m/ N: E( [  N( l
        if (ret)) O+ G. g. F% \# B- X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; }4 x9 Y: q- q1 h( R2 U                                "%d\n", ret);
. e. c9 X+ i* ]/ T; _/ B: H1 j#endif- {: v+ T8 W/ Q9 G: }
        ret = platform_device_register(&da850_evm_tl_leds_device);
$ t: A$ l+ O2 J* y: O7 j        if (ret)3 G, p, L$ P8 [( i
                pr_warning("Could not register som GPIO expander LEDS");' c/ K5 c  k' i) z
        else
7 W% ^- Y% j* U( @                printk(KERN_INFO "LED register sucessful!\n");3 ?" l8 S- v( D7 A0 m' _7 x
8 ?2 h* O4 k* F1 [4 D2 D2 W& ^
        return ret;
& i7 B) a# G4 v7 N}+ p" u9 @$ N; J( S8 T+ S

! f$ @5 ?( Q% {/ l' Qstatic void __exit led_platform_exit(void)
; [) w) y3 T4 c. M{
+ P2 i  R  p" `  G) k        platform_device_unregister(&da850_evm_tl_leds_device);" b: y8 ]/ H- v. `' S
. Q0 s& h: h# r& y' s8 s
        printk(KERN_INFO "LED unregister!\n");
: [/ O5 `' Q  i2 e  O. u# U* h}
; c: g) h% u! `. u
4 @; j2 w+ V, e4 f8 Fmodule_init(led_platform_init);: I# {: E# r0 t( X+ A
module_exit(led_platform_exit);( S- m+ b9 Y8 o- b& m
- o! O% \  a( a& o. j$ K- `% N
MODULE_DESCRIPTION("Led platform driver");
! I! P- Y- j+ b! B" YMODULE_AUTHOR("Tronlong");4 m. d& _1 @  o' G; o
MODULE_LICENSE("GPL");
1 a8 D2 d7 X" O+ {8 N% }, a6 t3 M0 k2 T. y$ |9 ^/ i: H- w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-18 00:09 , Processed in 0.048863 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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