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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 H- \, k" z" Q/ Y+ @' }, B
#include <linux/init.h>
( a; _1 B3 L. J) z#include <linux/module.h>; |5 w2 O# ^4 ~
#include <linux/kernel.h>0 L$ H! t2 z) n( b) I5 K
#include <linux/types.h>- T& d8 W$ b6 O5 W/ }
#include <linux/gpio.h>
5 ]( X9 |9 V# o& Y. R% @#include <linux/leds.h>* f  i0 R9 C1 C( ~- s3 B
#include <linux/platform_device.h>. F7 u+ P, ?3 D$ B

7 }: ^. W' w* k2 J  L#include <asm/mach-types.h>) t$ D+ P6 r$ k: ]
#include <asm/mach/arch.h>1 q& q2 q4 k) z! \2 V
#include <mach/da8xx.h>
  i, @! h, f# }, \% `#include <mach/mux.h>- R/ M, P4 u; A. x9 e) O6 @
# H( P/ j/ n; L% A5 o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 n6 {4 k, k* C6 P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 u& C- Y) T2 {$ s" T
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' Q4 n8 J- r1 I( _0 [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
# S2 T7 R$ c: R" j0 Y
+ B& y/ R1 ?9 \. N( Q3 X) E1 ?9 J/* assign the tl som board LED-GPIOs*/
; B9 O! K' L: U  o+ ?6 bstatic const short da850_evm_tl_user_led_pins[] = {( [0 r9 f! i% ]8 q
        /* These pins are definition at <mach/mux.h> file */! P) F- C* i; T6 e( X  O' @  `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- N' _: P' d. B        -1
* d8 ~' m0 ^# [# _, D8 s};
/ U( P9 g* z3 Y6 [/ ~3 |8 \7 W$ ]( C/ m6 p5 d
static struct gpio_led da850_evm_tl_leds[] = {
+ }# I. c+ f; K8 D" H, b        {; h: s3 ^" Q0 V1 X# o+ @
                .active_low = 0,
0 q8 i' [3 b+ I                .gpio = DA850_USER_LED0,* _4 L# h9 U- a$ U1 k/ R* B$ k- _
                .name = "user_led0",# l3 `0 N$ }: O. C6 c
                .default_trigger = "default-on",# V! g% \  I. k" N' D' c& a; b2 _
        },( }# t  k6 W# _; x4 k* R
        {! h! {( U% x! d( Y! A8 B$ _
                .active_low = 0,
) Z! N3 k& r% o6 m1 W" t4 J5 w                .gpio = DA850_USER_LED1,* Q5 r/ F0 S& N* H# N6 ?; M
                .name = "user_led1",
" G6 ]* V# ?& h7 {% q                .default_trigger = "default-on",
. {0 }, o6 }8 \3 K        },
( Y; H1 d- ?$ e- `- s. l        {
* \+ S" H9 C4 v! f3 A* c                .active_low = 0,
, ?2 l" }2 g  `1 j0 f- M7 V7 G# _; f                .gpio = DA850_USER_LED2,
, U3 a! D- [6 J1 W                .name = "user_led2",
. U, z# B6 L2 k  M  L( y                .default_trigger = "default-on",
$ ?7 s0 G2 L( @" M# ?  `        },
$ w9 K4 Z! }2 U4 G! X: J% ~4 \; i        {
  |+ C4 |! @. k, g0 F8 j% \6 m                .active_low = 0,; r) C) s) O+ l5 q
                .gpio = DA850_USER_LED3,3 L6 q3 U* f& V1 U, W6 V
                .name = "user_led3",+ Q8 H0 F. T0 G/ D6 O) j/ v
                .default_trigger = "default-on",1 R0 G8 B" k, T7 j4 m
        },$ p* A. h5 `9 s' r* Z
};5 y" @/ P. Y4 R9 x$ R( y# ]
( [" a' D. j: x: _4 g$ l" L
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {- B' V4 ~* s( q) j% i: l
        .leds = da850_evm_tl_leds,/ Q& Y  @, ^% j/ E/ X+ m. u9 I3 ]3 M% \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- k7 v9 R( g6 s3 l7 T1 K
};
. c$ L0 V3 C6 l( ]  z% E. N& S
3 i6 Y4 l9 J: G# k: H7 ?static void led_dev_release(struct device *dev)
: i: m/ A; r6 i% Y. T{) i  j$ K. [: m9 e, }7 O
};  q$ ^3 d  |: Y, M3 n$ O8 s+ n
2 M$ D0 |. v' k/ t" e3 K0 C% Y' ?1 h
static struct platform_device da850_evm_tl_leds_device = {) g& Q# y) K6 E
        .name                = "leds-gpio",
/ x0 O% x- Q/ d' U2 ?$ x1 H        .id                = 1,
* d' R: X9 b5 Y        .dev = {  h1 l. N6 P- h( u; l4 g; `* I
                .platform_data = &da850_evm_tl_leds_pdata,
( [- Y2 v! [( F                .release = led_dev_release,# {! {7 C7 u9 f* `) i- b1 V
        }
9 K- o8 Q6 S+ l% y) W};
% q/ e5 v" H% Z9 p3 K) d; g% n: K
1 G. D+ i6 I. u" j9 F$ kstatic int __init led_platform_init(void)
' K9 u& b4 a" S' h" H, S{
( f8 |4 A$ p. I0 `$ n5 F        int ret;: ?% x4 W, n3 X/ k  K/ ^7 F" _& d
#if 0% e: e# p+ w- Z/ ~% o# p
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; M, g& A3 ~3 c6 S8 W
        if (ret)4 h) B& r/ `0 g9 s1 ~' l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; n' }  L. N4 g: v: W7 H
                                "%d\n", ret);
) Y) m! u, g& {; R2 N6 W, ]: N#endif! {( h2 w: }! l; i: K
        ret = platform_device_register(&da850_evm_tl_leds_device);8 _' X7 o: O- |
        if (ret)
' D. {6 p) S2 S1 U, v" V                pr_warning("Could not register som GPIO expander LEDS");
* H, H5 k; D( B' ]1 }        else( C2 H# {$ E% g* N3 Y
                printk(KERN_INFO "LED register sucessful!\n");
. ]8 `4 z8 V/ q. m2 W. L3 s- ?( V6 `- M$ j, r' k" b3 m/ T
        return ret;
$ i" |# B% m( R+ k0 P) t}6 W  M5 s* D( a# R+ a* t8 b

2 h' i* _1 a) u% y, K* F' D1 hstatic void __exit led_platform_exit(void)
0 x# ~8 K) V8 T% t* ^{
9 w# Z5 d% j- ]8 x/ n        platform_device_unregister(&da850_evm_tl_leds_device);
( ?; C3 ]: [! ~- N- ~3 ?; ^6 }' D/ ?/ \2 o5 H
        printk(KERN_INFO "LED unregister!\n");
3 B1 L8 s; ~& V/ x, d# u}
0 v) ]4 p# x1 V0 |5 c2 n5 V, q$ E+ ]8 y
module_init(led_platform_init);
9 ~9 \6 m" l5 M+ x* y! [) l; \module_exit(led_platform_exit);/ n8 v! d& I" t: M8 D. |* c8 z0 m

1 p5 s. V2 N; |: R/ E. C- j" sMODULE_DESCRIPTION("Led platform driver");6 S* e8 v" {5 y* m0 k7 ], ~( i/ ^
MODULE_AUTHOR("Tronlong");9 ^& O  |# s  F
MODULE_LICENSE("GPL");
  z& t% z( y) R5 M- @$ ]# Z. e! \. c
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-11 03:58 , Processed in 0.041426 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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