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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 T/ x% f% w3 G2 G' l6 k: g* e#include <linux/init.h>
0 }# e5 s1 V% }' v#include <linux/module.h>
' j# ?7 h. H4 M* t4 ]#include <linux/kernel.h>/ L4 v/ w( Y1 w" U) `
#include <linux/types.h>( h3 m9 u  b5 \& M0 j: \
#include <linux/gpio.h>
, F! ~7 {; X$ ]4 N% u9 L/ [2 ]#include <linux/leds.h>4 p$ N" ?: M, g# n, Z
#include <linux/platform_device.h>' F0 T* p1 ~- p4 I8 c

/ H& ~6 {  p4 h' Q7 K3 Y* Q1 d#include <asm/mach-types.h>4 Q6 q1 _, ^! Q. Z6 E
#include <asm/mach/arch.h>
6 y' Z4 ]2 Z+ ]& p7 V#include <mach/da8xx.h>9 o4 D7 ]& v" s- U/ l/ j/ T
#include <mach/mux.h>
' Z9 W+ c$ g3 r1 N0 F) r0 g! l8 G) F& p0 w, Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)/ S* \. T  g+ M2 Q% o9 n
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ j; p+ f: @" m: A7 [* N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)) z1 c; O: @* l$ K
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( R, A3 V  N$ ^6 N2 Z. H3 o) A& k( @  {9 }. m# V; L8 p1 G3 q
/* assign the tl som board LED-GPIOs*/3 b1 ^+ T) E5 i6 I, a0 P: F
static const short da850_evm_tl_user_led_pins[] = {7 d& j/ G5 ], B. J6 @* c1 O2 n
        /* These pins are definition at <mach/mux.h> file */0 r9 z+ W! @' A9 G, G1 O
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ k& J* |3 G! b' g
        -1" \, c1 C9 g* I
};7 ~0 A6 R+ O1 ^
* W2 j; [  P5 y& f0 U
static struct gpio_led da850_evm_tl_leds[] = {" n! u' q" q$ Q0 ^+ b3 X
        {
- [& u- _; n5 p* V6 k2 ]+ R                .active_low = 0,$ p% e) ~! k4 l4 Q* Z# u- b" R
                .gpio = DA850_USER_LED0,
1 w7 a4 P5 X6 \0 u) r9 ~                .name = "user_led0",- k! T' C, [# t
                .default_trigger = "default-on",. M& T6 \4 @. t4 C" c6 H
        },% J3 U7 k/ z& a/ n5 g$ z% k
        {
# r  e& o* r9 e; y( V3 X; l                .active_low = 0,/ ~1 g( l3 b7 Z; [; ~" E% c- O
                .gpio = DA850_USER_LED1,
; B! \" T7 A3 }6 u# @0 ]* q                .name = "user_led1",
- I2 p! N4 @- L; K, a                .default_trigger = "default-on",$ x; l, l# Z7 \) G6 o; h
        },+ k9 @$ U- t+ i8 I5 P3 ^9 E
        {
7 t1 M0 Y4 \9 n: Z5 P                .active_low = 0,
3 p# w; h5 O# D3 q5 ~                .gpio = DA850_USER_LED2,
- a& y) T$ ?: u4 N4 _                .name = "user_led2",7 n4 x- t3 G/ x. ~
                .default_trigger = "default-on",
2 v! i- o1 }* z        },$ W. e* ^& z) A. {- b9 X6 n( A
        {" j) W$ @* T1 K: r. G3 C8 d) A
                .active_low = 0,3 |) S) Y8 Q1 W% ~; O
                .gpio = DA850_USER_LED3,9 f, @. g0 N* N& I' ^
                .name = "user_led3"," V& w- A9 n, H: k7 j
                .default_trigger = "default-on",
; ^2 l) a( l5 w3 G        },5 z& j5 {7 d- h6 m7 c
};
- Y0 m+ Z% l1 T- t: O* `) W7 {" [2 t( U0 m. t
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 B5 v" @# m! |        .leds = da850_evm_tl_leds,+ t# f- F1 t0 T. ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
6 S# U7 z! y" Y6 v" z};
* d9 D8 g# ^( B' D0 ^: z$ [+ j- B+ d0 X4 f( l2 O5 k- L
static void led_dev_release(struct device *dev)
9 h5 [- ]4 p; L  K$ N  b) v6 x{
0 M0 K7 d8 s1 M) z0 ^- y};2 b5 s- S2 @% ]! r% F* c

/ G' Q! N& {0 B' }( E1 Q2 ]/ qstatic struct platform_device da850_evm_tl_leds_device = {" c# ^* ?6 ]- K7 d- c
        .name                = "leds-gpio",2 z6 H/ P- r6 L" j  B5 m
        .id                = 1,% c- L, C  {5 y, s/ r: h5 w
        .dev = {
$ r8 f1 q9 H& H4 h; w                .platform_data = &da850_evm_tl_leds_pdata,
1 i! K0 B- x4 P# q& n! G/ }  W                .release = led_dev_release,5 {% E' l% B0 M* F5 y3 G0 |$ S
        }" X8 p) [  ]$ l* F0 m
};9 j! |: n  C3 R' k1 j. I
+ ]6 v+ O9 V, p7 J: D/ H
static int __init led_platform_init(void), v+ j. _! z" N: j/ g
{
) h  Y# r( }! a7 \/ U% z        int ret;
5 g+ Y2 Q" T1 n$ Y#if 07 u, _/ }7 T/ d* |  }
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 N* L4 s! [7 q, q8 }
        if (ret)0 |  M# B# L& {8 a3 x6 u8 u1 h) I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 f9 R1 v) x8 C' T
                                "%d\n", ret);
% u# t+ f( X" w. o, f#endif
- w4 c  o1 R% N& Y, J! M+ _        ret = platform_device_register(&da850_evm_tl_leds_device);, D7 a% x5 \* i  b% |
        if (ret)+ U6 \+ o* {$ t' R! x. G# s- w
                pr_warning("Could not register som GPIO expander LEDS");. e+ W) _( A, q" l; E6 K4 \
        else. ?& ]9 l' m6 R3 A- v) H7 H
                printk(KERN_INFO "LED register sucessful!\n");
5 \( }7 ~8 l% A& ~# v$ Q7 @+ [# k: _4 y/ j) r& q' @
        return ret;5 `' C8 D( X; G8 @) G
}! |" Z8 \& f! N; @! W  q
3 T9 z' r4 ]/ n' s7 w1 ]
static void __exit led_platform_exit(void)8 S1 H% R0 ^; z! C3 s
{
6 N. V7 ?/ P! p: F7 h3 A6 ^        platform_device_unregister(&da850_evm_tl_leds_device);
$ [+ l# @. \5 @* [# L' O: W1 |/ \/ ~' K9 ]+ s2 h
        printk(KERN_INFO "LED unregister!\n");
6 \2 u& p& J# B7 X; G) [}
5 T% |& D+ ~& h) w. _2 Z, H
* b* ?/ u& E7 V8 qmodule_init(led_platform_init);9 {  M" V" _: \
module_exit(led_platform_exit);
9 G, e9 d1 o- f8 y0 |
! j0 D  i6 [8 Q4 c5 y6 o7 _MODULE_DESCRIPTION("Led platform driver");
3 c  i& R; m7 H' q$ cMODULE_AUTHOR("Tronlong");" U& A4 u0 a- i7 ?( s5 R
MODULE_LICENSE("GPL");3 k' g* `0 I/ p: u8 }3 v
: O# I3 T# t) @9 n0 G! }/ d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-5-20 17:20 , Processed in 0.040562 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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