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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! X4 j4 o! _5 O  `- {  [
#include <linux/init.h>8 R. f# p) P" l! @& k- k; y
#include <linux/module.h>
+ D  B3 @. S, @- o. m( t0 f% C#include <linux/kernel.h>
9 `, a0 Y* K9 X; H#include <linux/types.h>
3 N: W- V0 P; @) `1 H  d#include <linux/gpio.h>8 l  z) q# y1 L  s! h2 P  z, b
#include <linux/leds.h>) o) |; f: X2 ]4 O2 D
#include <linux/platform_device.h>
* S8 p+ W& {' w1 A& ^3 c& ~3 ~$ c7 I* a2 k3 G
#include <asm/mach-types.h>* T' F* S; P, r
#include <asm/mach/arch.h>" q! X7 {  ^* a3 T
#include <mach/da8xx.h>9 T0 w* O8 f0 w
#include <mach/mux.h>7 f3 h# a) l" f& Y  h
- u- m* x6 d: Q/ w. C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' _3 s8 v# K9 ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)8 Z; I( p* @$ p% |3 q
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( r; B0 M& E( y2 l' t* b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: X. T9 A& p% Q, r$ @- V: E. M
  k" t9 A3 d! H9 x- S( u9 |, z3 r/* assign the tl som board LED-GPIOs*/- b& M% g$ f4 k2 q
static const short da850_evm_tl_user_led_pins[] = {2 v4 f0 `) N, R' p' p) _
        /* These pins are definition at <mach/mux.h> file */
* K$ w3 Y. I) T' t& |" \5 L        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( J2 q/ x; e' q) S        -17 S" A; K) y. T4 T, D# Y% D$ p
};7 a* O. ?* {) {. x0 L2 f9 s

; |$ t1 x; l+ A' S' Z* W3 ?* e, b, M- Gstatic struct gpio_led da850_evm_tl_leds[] = {  B# K* o+ q# ^. g4 `6 p: B3 h
        {0 l! o' t! _2 D9 |7 i) I. n( S3 P
                .active_low = 0,9 Y1 g) O2 e9 t. q. p2 p7 r" |
                .gpio = DA850_USER_LED0,+ _' q; M, C+ N! I, Q2 ^) z& w
                .name = "user_led0",
% _) b) Z" Z, i8 U* ~                .default_trigger = "default-on",
' z  M" L% J( v; b1 s  _' J: z        },
. o" O- o2 a& }9 M9 x        {! I& h) X4 v+ P8 R
                .active_low = 0,
+ m2 o' i$ X8 f2 ^6 a                .gpio = DA850_USER_LED1,
) z6 |3 `# l! Q8 s                .name = "user_led1",3 u' ^& q9 v, h9 ^5 i
                .default_trigger = "default-on",! l" x& Y4 B/ k
        },
+ i3 }  M; z; E  U. u' w2 j# T        {; N2 c: K# d  S6 x
                .active_low = 0,6 ?/ _$ J$ H* i  H+ C
                .gpio = DA850_USER_LED2,
/ [1 s1 ]- Z& b) b                .name = "user_led2",2 q% ]6 {, Z" X* T4 N' f& j
                .default_trigger = "default-on",
7 W4 [; s+ s# a0 {9 k        },
2 R2 Z+ H- ]2 g1 o* W( l        {
. R2 T" b0 p% F/ \                .active_low = 0,1 K$ ^8 a1 L% l1 c, }( D
                .gpio = DA850_USER_LED3,
3 F  ]0 S* {3 O4 @0 F                .name = "user_led3",
" k( z# R4 n) x/ [* G6 `$ h                .default_trigger = "default-on",
& n; M  e" m# z        },* R6 E4 B/ e/ k% ]1 `3 A. i
};
- b, e) n4 q. F  s6 M' x, _( y$ ~% n& G# w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ q$ S$ E& R. b1 n& R
        .leds = da850_evm_tl_leds,
  f' L9 W9 O0 T2 f: {- u) l        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
" L+ Q: b5 @# b( M};5 s6 s- v! Y! v( r! C4 ?, G' u3 B, \6 i

1 {4 C+ b1 _& a( I6 estatic void led_dev_release(struct device *dev)
% y# N2 x( P9 {{7 E3 D% r* J5 Q6 @9 G: R+ ^
};
$ `) e. x7 l) s% a
5 y5 Q' I0 p2 ^, q7 a7 u7 {static struct platform_device da850_evm_tl_leds_device = {5 v+ g* j% A" r4 l0 k4 ^
        .name                = "leds-gpio",8 v- [# [# }+ {3 P4 O7 |; w8 _
        .id                = 1,
1 i3 T5 J7 L/ N        .dev = {
& l2 v9 `" M9 I+ u                .platform_data = &da850_evm_tl_leds_pdata,; j: G" X( W4 u
                .release = led_dev_release,/ E& _8 u9 q5 {0 [  v  {8 f1 z
        }
( i" I' ~( A1 Z, J};' t( U) H; Q' P! ~- D% F) I0 y
% k  p6 t& P) c2 z5 W/ T; {" _4 t
static int __init led_platform_init(void)9 E1 Y1 F* @  J* V4 \% v( d0 A
{+ P6 N6 T0 F$ Y6 e0 {
        int ret;
& k/ M0 h3 B& X7 f#if 0  M% b# J+ x0 [
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 @, P6 r8 j: {( h" O: M        if (ret)
( k1 [8 i! O: f- t2 Y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! y9 ^( y) ^; T* a
                                "%d\n", ret);
5 J: R1 n1 a! i#endif
- _! \% d7 w7 k4 H        ret = platform_device_register(&da850_evm_tl_leds_device);
" j/ d' g9 r8 M# j8 i( O        if (ret)
3 m( H# t9 S" G8 q                pr_warning("Could not register som GPIO expander LEDS");
& e5 F7 a8 }7 q5 W        else& f- T* _& S5 d' f: s* B# Q, B' D7 ]
                printk(KERN_INFO "LED register sucessful!\n");
" `/ }) o. b- t/ |
9 ]0 T+ T7 J$ [% L  }  X. _        return ret;0 o/ x7 U4 d0 Y  X4 b
}+ [# s! L7 T; V3 m1 g

6 x/ r+ B) g7 C9 f- G; kstatic void __exit led_platform_exit(void)
$ b4 m# L# ^) o* G/ h+ Z# D& u7 F2 M{
* e' Z! k3 j( i# Y8 e, Z        platform_device_unregister(&da850_evm_tl_leds_device);
- K$ }7 Y) J& S. i" {7 m
% r; }9 q8 o* `3 t        printk(KERN_INFO "LED unregister!\n");, H" L0 J" H, ?
}
6 }$ W3 r) S! n, e/ e  C+ W8 r, G/ T9 z: F8 m3 v, T% B
module_init(led_platform_init);) v; D6 _2 Z8 D4 N' ?  e1 E
module_exit(led_platform_exit);. l! f8 g+ c0 y

8 H0 C. X' F: Y( C% cMODULE_DESCRIPTION("Led platform driver");% k; q% H( X1 t
MODULE_AUTHOR("Tronlong");. K5 v6 P1 d% c  v
MODULE_LICENSE("GPL");
6 v0 t9 H9 _/ y3 D
! I" ^6 w  t5 O6 r7 E& j( m  s
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-28 07:30 , Processed in 0.041728 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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