程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 U% s3 F& O7 q* X! C% a#include <linux/init.h># q6 J/ l/ a, k$ i2 s: I
#include <linux/module.h>% d  n: U  _2 u' i' Z- n9 j; i
#include <linux/kernel.h>6 {0 O, |) z, }- v- Q3 h
#include <linux/types.h>' P& s; Y0 y1 ~9 ]5 |0 F0 ?
#include <linux/gpio.h>5 e, A# d- s' a$ a
#include <linux/leds.h>
# F/ i' \& d9 {( D0 w( R#include <linux/platform_device.h>4 F. u9 Z; W* T# }/ @

3 ~' O! Q' {; }9 m#include <asm/mach-types.h>
1 t) ~+ ]* z; m, ~#include <asm/mach/arch.h>8 d2 N. Z" u4 j8 V
#include <mach/da8xx.h>
# B/ W) Q$ s& P( N0 L0 C( t#include <mach/mux.h>
% r8 B: {/ d# T! z& x
9 a6 y5 x0 R: I$ V! u#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- @3 A) g, F6 ]. r" I5 U4 S5 p; D1 e& L
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 _/ y/ Y7 c! q% T" o
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" s1 o% j+ I) M- d: i#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% A) J" M) \+ u  b) ?" ?5 D9 K) m. n3 |& F& {
/* assign the tl som board LED-GPIOs*/0 ~" X8 R+ b( q
static const short da850_evm_tl_user_led_pins[] = {
( k9 c5 P/ y! u# D3 k        /* These pins are definition at <mach/mux.h> file */* b) G0 B' P& _# @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) b) M% p- r5 ~6 C. z! Z$ u        -1; R  \1 w% g+ `* D5 {3 n; s7 c; L
};: u+ }9 l# w3 H  G" j. M( n! r

% W  ^6 `/ l' _4 kstatic struct gpio_led da850_evm_tl_leds[] = {1 a  A6 x  u  c3 G2 p2 A, ]
        {% ]8 N/ l# X7 p; n: b3 C
                .active_low = 0,
+ F6 b6 N3 z& z& N0 }+ o0 f                .gpio = DA850_USER_LED0,
) B) u8 G5 N7 R7 c7 Q6 L. p; s                .name = "user_led0",
) I7 `3 M$ R% x& Q2 G8 o3 O/ ^8 P                .default_trigger = "default-on",: b  w# a' W+ t  f0 Q* H2 I
        },
$ S: s5 X. s; S        {
( f! g' T- J5 @, `- n                .active_low = 0,4 ~6 ]( f! P  T! k4 `+ o! q
                .gpio = DA850_USER_LED1,
5 f. q% |& n* b1 E                .name = "user_led1",/ k7 J  H$ @' }* `. G7 D
                .default_trigger = "default-on",
3 P& k5 R+ D" W; [) U+ q2 N/ }        },
' c) ~& b3 ?% X! W* o' @0 m- o+ B        {' {( `3 ~/ e+ o9 S& L
                .active_low = 0,2 J6 g/ q( F7 a6 I* ]  c. Q# w
                .gpio = DA850_USER_LED2,
* H8 `7 m, q% F: Z                .name = "user_led2",* O& i8 u3 s7 |' C
                .default_trigger = "default-on",
9 a* k% _) _' x: W* O. J) @! ~        },4 n  S' T* Q" @: M+ O
        {
( l  l7 y; Q- F4 w$ \  H4 j                .active_low = 0,9 _2 s8 y, m# T; D" U9 s& _
                .gpio = DA850_USER_LED3,8 V" e# J! L. {, ]1 ~
                .name = "user_led3",
& P3 c* v, r1 m0 _                .default_trigger = "default-on",
  h' k/ v+ w# R! Z& E) u        },
, a) k1 k! d) a! a' q( x};
: ?2 S) |% Y) k* s' V4 q! ]: A7 r) @  R( \1 }: ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( ]! D# n* Y5 \, |        .leds = da850_evm_tl_leds,
" f, E" a( c2 }, T! |+ |: ^8 I& x        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 f) C# E+ V1 j; \};7 i+ f% ^" F8 m5 K
- @- L9 H3 ~7 ?/ t
static void led_dev_release(struct device *dev); j* r, D; m3 g
{: f9 N1 \1 P8 p; W1 R" t
};  M; d- W4 }. K$ L$ g; o  r& X
! i6 ^# g7 g+ Y0 B+ a$ [
static struct platform_device da850_evm_tl_leds_device = {- j% f: \& b1 h& Y, c/ V, B
        .name                = "leds-gpio",
( R! z0 ]# J' {& H6 V9 k        .id                = 1,' N& A) J+ V5 W3 V
        .dev = {
8 t" c- b+ q0 q4 t5 _+ ^: @3 B% z                .platform_data = &da850_evm_tl_leds_pdata,5 o$ N7 Z, ]6 N* S
                .release = led_dev_release,
& N7 r; J8 x7 s. N        }
, z7 T# W! w' i5 w};
' `; B8 a$ T2 s+ d$ B. _  k
: f7 H$ u# j% q7 O5 x# E9 astatic int __init led_platform_init(void)
# P! B/ g, j4 q' m: f{
& c: }2 i# J" ?  |& u3 o/ F5 D& G7 o        int ret;
$ j; {' r- v) c5 E#if 0* ^- d6 Z' t/ L% Y; c/ I: L6 l& `
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! t$ r2 G$ F# C$ e- O        if (ret)- _! m7 W  h' j3 [
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( ^6 F' f; ~" I' K& w5 }9 N
                                "%d\n", ret);
3 E! f  c9 g# x& K$ W; e9 h/ E#endif* D6 ~$ z$ r2 R
        ret = platform_device_register(&da850_evm_tl_leds_device);, w. e+ [+ m% o% A4 x3 [# w1 r2 U9 x
        if (ret)8 `, i  G( u+ m! n; a$ O, e
                pr_warning("Could not register som GPIO expander LEDS");# V* _0 |. b- ~% h/ s7 c& T/ D
        else
6 Q+ W; R! y2 S1 i! z+ B                printk(KERN_INFO "LED register sucessful!\n");
) G6 T, ^# H" i
& n' V6 Q2 `4 @8 e        return ret;/ G. v& o, E( [" q8 }
}1 J6 h' H% h3 j6 i! g
# S6 G7 c" x* s# }( x
static void __exit led_platform_exit(void)
- k  {5 i1 B* R4 }2 c9 j9 E{, p. S$ o* w0 m5 E1 V1 w! C
        platform_device_unregister(&da850_evm_tl_leds_device);
# p& P7 k" Q% m
6 C4 i% Z4 u' F  W6 x        printk(KERN_INFO "LED unregister!\n");3 T$ S1 g: H. g4 p+ Y
}% p) C8 ^" Z) u. W' l( w+ t, D

" ]* D* H; G# e; Umodule_init(led_platform_init);
$ X2 P+ z1 W5 ?) B" q6 _4 f! G& pmodule_exit(led_platform_exit);6 B4 ]1 b  O7 _: E* ]0 a

% _' z$ `  e/ C; }7 R% Y& d3 E* s8 r: pMODULE_DESCRIPTION("Led platform driver");
- L6 w. ]/ r  N, `MODULE_AUTHOR("Tronlong");
  G, P  ~  Z# E5 ?- Q- wMODULE_LICENSE("GPL");% L9 R( D$ i! |- u% z5 }

$ p9 K: g- p) B; }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-30 13:29 , Processed in 0.036771 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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