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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  I4 i9 |& u& L* X7 T: _8 j  |#include <linux/init.h>3 [5 N& w6 O* l- R+ b. e+ q1 J4 D/ o
#include <linux/module.h>
# m( V2 x' k) ?- V#include <linux/kernel.h>
3 B& d6 F2 l. |) g#include <linux/types.h>
% ?; O7 o% L$ g+ `* {0 y% R#include <linux/gpio.h>
; X, k- J2 Z, R: B#include <linux/leds.h>
  `% H  H+ ~7 T  L- W5 f#include <linux/platform_device.h>
5 H# x' `4 J8 g3 S- e! _6 ?% |4 C% e& k* q8 Z6 m. g. }# W
#include <asm/mach-types.h>; c% i2 g+ r3 n  n3 [" g' e
#include <asm/mach/arch.h>
" p8 W) B/ b" h/ p! i9 w#include <mach/da8xx.h>
6 r) S0 j* U3 N! L' ]#include <mach/mux.h>, ^2 y6 [, g3 ^$ a1 h
$ n2 C$ @' F- v) B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 y0 T2 R* M  l' h' _+ W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: P2 r+ P. I1 {/ W* P5 w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ r5 l$ G1 `. T5 B. x* Y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 ?1 ~) P5 O1 ?0 _7 c9 ~8 h' E- a" q) x  A+ M* Y- c
/* assign the tl som board LED-GPIOs*// N' s! j" h  j0 I
static const short da850_evm_tl_user_led_pins[] = {1 m) u: P$ r4 t& R8 [
        /* These pins are definition at <mach/mux.h> file */
/ [) q; c; N. ]7 }3 N/ E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
7 O: Z* ?! s, u        -1
+ m% V- [/ O* f9 D. f; q9 ~- Y. b};
! o+ ?! m5 J8 G5 ?
5 A# i- U0 r) r- l' p- e6 a8 Y3 xstatic struct gpio_led da850_evm_tl_leds[] = {) Q3 M: o+ u& x) P2 F3 i
        {! l# p" G" @/ z6 s3 w6 M
                .active_low = 0,
, J. G/ @! W8 e) L; z$ o" m                .gpio = DA850_USER_LED0,
$ d/ V( h, Q7 i                .name = "user_led0",
: ?$ P/ C, n, b) c3 o2 ~                .default_trigger = "default-on",
& J/ Y! m. ]# q9 D/ R        },# f2 m. r1 r: T) U' F4 X) @/ Y0 B
        {
5 s+ }0 J6 [( X' A$ m' S$ Q  X                .active_low = 0," D3 _, L% @! Y* |6 ]' C* G9 D
                .gpio = DA850_USER_LED1,6 Y" q# L0 G8 l' q: `9 v. @
                .name = "user_led1"," H* |3 C. e# U* k
                .default_trigger = "default-on",
/ U  v$ h# W2 l1 r5 T' e" _/ ~        },
+ V+ J  B& @0 M        {
3 j. J" E3 e( A3 K4 q" P$ W" x                .active_low = 0,
, I4 z3 f) C; C/ [: e1 i) t: @' X                .gpio = DA850_USER_LED2,6 E. o: i% p4 ~& y, D
                .name = "user_led2",2 _# M* u: O' e) v3 k
                .default_trigger = "default-on",& w7 B) s1 r% p( s8 ]9 I) m% R
        },. \$ a6 \: r7 u1 P% W! _+ u' ]
        {3 n& c/ I; E2 {
                .active_low = 0,- S0 W9 F, `- L" P  x, r3 `& U
                .gpio = DA850_USER_LED3,
( W/ K! P* h& b9 c7 B4 ]                .name = "user_led3",9 b: b. Z/ y3 z$ {5 u4 t# i
                .default_trigger = "default-on",
( _% F, N9 l8 s+ f        },) j8 b2 o& T& I2 e" V2 X
};
" l$ J$ A8 B9 s0 q& i/ ~+ [. u  e* j! e$ r7 c
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 A  ^, E, b7 E8 [) e( j
        .leds = da850_evm_tl_leds,+ c0 a/ c4 d$ r4 X* u+ G, H/ n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( Z7 x+ u2 v2 e! x* E
};
: U; l! S, S, u  n5 `* R
& I  v9 Q1 M+ s$ Q- U- o4 u5 @static void led_dev_release(struct device *dev)
+ A+ O* A& }8 ~{
7 `- P# f4 B4 l# {9 F};. a* `/ g6 O( _2 I- D3 m

0 I: s8 z: L7 R# ~. U" {5 Ustatic struct platform_device da850_evm_tl_leds_device = {
& X& x: f2 i" D7 [0 T' o        .name                = "leds-gpio",
3 m+ Q: n0 I* O9 }" E: N        .id                = 1,/ @$ a* W9 U7 b; S- t3 e
        .dev = {4 L; `, w3 e3 q3 ?4 \
                .platform_data = &da850_evm_tl_leds_pdata,
7 P( N( v: @4 w; t! Q9 N# V                .release = led_dev_release,
7 b9 T7 y2 w8 @9 j8 d5 U        }
4 M5 `1 ^! j. ]) I' k! O/ f" U};
* l3 f& y3 @0 \+ e, }. C1 }& y& a+ R3 g3 ]+ ]% K0 ?/ w3 T
static int __init led_platform_init(void)
% K0 w0 ^) z9 b8 _{2 I& W$ O5 x/ Q% ?8 n
        int ret;1 g$ U$ g0 F3 E$ g4 E
#if 0* N3 ^7 U! Z: y# J) \# k, h  v; z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, z5 Q! {- e2 b: ^+ D        if (ret)1 ^1 }1 Y, N- W4 g) s! C1 z2 o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% J4 ?9 L! W4 j                                "%d\n", ret);
4 b/ Z0 f" z2 w7 s0 P#endif
8 m# U3 I9 w& _# j* C) M- L        ret = platform_device_register(&da850_evm_tl_leds_device);
+ e2 G( {" p4 A        if (ret)
/ T: W7 U% P  \1 v& `: D# c  \                pr_warning("Could not register som GPIO expander LEDS");
3 P$ B; R- @( L5 d1 [        else
! }% x& |$ J# y' Q, b' ]                printk(KERN_INFO "LED register sucessful!\n");* S* v. H6 C6 s5 R
0 i. N  W# M6 e. Z; n; `( U
        return ret;
" U1 X0 M4 U1 f) j! P- O}) A, d- x" l) a
  t: d- c' Q, n/ w8 W3 N. g
static void __exit led_platform_exit(void)4 n+ N7 C% H" O" ^  \. O+ R6 P2 O
{/ T$ n& O4 M" y8 \
        platform_device_unregister(&da850_evm_tl_leds_device);5 P& d. R  E2 e3 Q; ]9 D: @! S: x, z

  J: d& l' R- ~. \8 R, q        printk(KERN_INFO "LED unregister!\n");
" p' K/ s5 I: F}: A. C# Y' o  {  q) c( c
: N7 C, u0 _, l3 x# n
module_init(led_platform_init);
) T8 \2 W' q1 E3 a/ C4 ~. Gmodule_exit(led_platform_exit);
  u5 r/ ~3 c6 J& E/ A4 \. w5 T  a
MODULE_DESCRIPTION("Led platform driver");5 z7 b! _4 ^6 ^. _; _; Y' l/ _
MODULE_AUTHOR("Tronlong");. z& N6 g) s; K) R. z5 {/ t' W
MODULE_LICENSE("GPL");
( K' G( h4 O0 j6 B: U
0 F0 j+ n1 B# q0 [# C/ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-1 04:57 , Processed in 0.040555 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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