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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。, F7 }0 \% b$ {! a4 O; n8 ~9 t4 ~
#include <linux/init.h>
. i; U3 Y. O6 H#include <linux/module.h>
: z) y8 H1 T2 ~* S# H2 M: f#include <linux/kernel.h>: u5 _3 X' w! \
#include <linux/types.h># n& i( s1 f' D( Q* e: `4 k  h9 U: j! M
#include <linux/gpio.h># e3 N+ W! s9 D# X
#include <linux/leds.h>
% B1 k5 Z) ?3 \- ^9 j/ X) D) S#include <linux/platform_device.h>/ T, B) S* [' b% D0 R2 R: c

8 j5 p  _0 [" n#include <asm/mach-types.h>
5 ]' e, h' F6 \5 G$ H4 a#include <asm/mach/arch.h>
' P7 ^  {' g: f+ F0 F( Q#include <mach/da8xx.h>
* l1 P4 V" {7 |. `#include <mach/mux.h>! X3 F1 `- X, a; k
" f: a3 B4 }4 A5 a( `* M
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 o+ @4 \9 ^4 y) g. e& \/ s#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. C) m, F* h6 A4 j8 I' B4 S2 Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# T7 n3 _3 m7 m8 z1 v, w#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 s# Y, X6 M0 X
8 O7 c/ u7 e4 I9 {. F8 c2 t, v/* assign the tl som board LED-GPIOs*/
! W$ A6 A) V" G3 Zstatic const short da850_evm_tl_user_led_pins[] = {( J$ m9 X3 P# F. ]* Q
        /* These pins are definition at <mach/mux.h> file */5 y) z  Q4 p) _- T+ w
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,) m4 ?/ h" F3 R$ _6 Q1 X* @
        -1
. g+ i& ?1 S" r2 }};
2 L' K% N1 E0 ^! x+ u8 m0 |, |9 R8 k4 i3 h7 _; k
static struct gpio_led da850_evm_tl_leds[] = {, l% i+ Y( W( W) h! V0 e5 [
        {8 E7 b. @  M+ k$ S7 ~
                .active_low = 0,
  l, {3 C; N) w- b                .gpio = DA850_USER_LED0,' d" }$ {3 c2 |) E% B4 E; C: d2 F, ]3 X
                .name = "user_led0",& Y) R! {/ U$ R# P3 @- U( S
                .default_trigger = "default-on",9 ^. d7 E$ Y- D' L$ s: X
        },' q/ h9 H7 f0 B1 ]1 f) y
        {: G) w+ X+ J3 O
                .active_low = 0,2 \1 w( q* v) ?( {2 L: w
                .gpio = DA850_USER_LED1,
5 Y1 q: ^, I* H8 l2 O                .name = "user_led1",8 T6 k6 B) v7 V) n3 }0 |
                .default_trigger = "default-on",) z. d& J5 e, L! `
        },7 N9 M: {6 }* F9 b1 l
        {7 R9 u) H* c( c; }8 }$ T; {. ^7 K
                .active_low = 0,
; B  z6 e' r2 f                .gpio = DA850_USER_LED2,
+ F" b8 b2 h+ T" i2 v$ m0 s                .name = "user_led2",! @9 l. @# F% D* Z' H6 {- T
                .default_trigger = "default-on",
) G$ |" x- l! X8 s; _8 K        },' o2 {. j4 @0 m) j) b, ~, ?
        {2 J$ i3 b2 q) F$ q# v4 Z& `
                .active_low = 0,
6 B9 t# f* |  L                .gpio = DA850_USER_LED3,
% k6 f: S4 i" [. ?+ h  g                .name = "user_led3",
5 d4 m* y3 L3 @3 ?. x                .default_trigger = "default-on",
: e, h# d. c# V/ w) o" |0 q) g. a        },* ~& h0 n7 l" }# G/ N
};
9 f5 `8 t, Z$ @1 R
- C6 W$ b/ |, \  Q$ i( s- fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 f. Y1 `: S3 x/ g  `" v0 t
        .leds = da850_evm_tl_leds,
. S5 y( m& L2 T. H# j: T4 F        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 f( r/ A, [9 `- e: ?};
& E4 E& A" P! ~) B2 h1 b$ l+ v: H; o0 I
static void led_dev_release(struct device *dev)
8 C& o" n$ R, I{: c" h% l! A9 K, V  W, l# V; ]
};
1 @" F9 Q6 A& X% i5 P  Z3 u9 x) g- o& O/ B% i( p- W+ U+ m
static struct platform_device da850_evm_tl_leds_device = {
+ f( l* j' [# ^6 x        .name                = "leds-gpio",% x( a5 [' J, c" E2 a. Y  T
        .id                = 1,
/ M" ^$ a* H, d- Q# s1 y! R        .dev = {( O& N. D8 E0 ]3 P
                .platform_data = &da850_evm_tl_leds_pdata,6 D9 f3 E5 X! O  r& ^. q7 Z
                .release = led_dev_release,  V9 w! P5 ~5 g. ^8 @1 k
        }  [( p9 W" d2 A8 Z* z
};5 X3 S( V2 Z) O
- l; L6 M% f) y6 g' `
static int __init led_platform_init(void)" ?) }& a. ^9 n+ k9 r- L1 o
{, m' h% M; K/ l+ _8 V) E
        int ret;
0 _5 i+ z5 _* {- ^) ]3 P/ ]#if 0( z( t% X* Z5 k! l, B
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 z9 I0 w" W9 W) N        if (ret)
3 I5 z9 Q# r7 ^$ ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"9 K0 b: ]0 h& J$ \
                                "%d\n", ret);6 j% C: B" ~: H3 g2 r
#endif
7 y& x! L4 b, w+ C        ret = platform_device_register(&da850_evm_tl_leds_device);/ x0 O6 Q# h* X  W4 Z0 Z3 G
        if (ret)" K. N0 z/ f/ r! S$ W
                pr_warning("Could not register som GPIO expander LEDS");& U1 p, v4 L& I
        else7 b# e* z! y- [" d: f+ O" G. A% E
                printk(KERN_INFO "LED register sucessful!\n");& L* ~0 [+ Q2 T

% m1 g, N! [2 w6 D: O        return ret;
  j" {$ \2 t- t8 H3 b9 [5 i, P}6 p. z1 ~0 @9 F, D4 w) o7 w  L7 g
4 s; W  h9 G5 @3 g7 S7 q
static void __exit led_platform_exit(void)9 b" ~1 k+ {0 F5 |2 w
{
; g) }7 e2 F" \, a! w; n) I        platform_device_unregister(&da850_evm_tl_leds_device);
, ^9 O6 }4 s7 V" q7 C
) U2 ~' B: }5 I* P        printk(KERN_INFO "LED unregister!\n");
! e& }$ L8 t8 Y7 Y: H* [; n}
0 m" O" Z- F; E9 }! n# y- c  T; M0 Q6 k5 C" I7 H+ X
module_init(led_platform_init);; q0 r. b8 N: Y
module_exit(led_platform_exit);
5 h" L6 p/ }+ }4 M0 e$ }, T) P5 B, {+ v) T; v8 J' K
MODULE_DESCRIPTION("Led platform driver");6 H# v8 H+ m' f* {9 a. n
MODULE_AUTHOR("Tronlong");0 G( Q* ^" j" L+ F
MODULE_LICENSE("GPL");  a, S" ^. V* m7 t/ h
3 D5 |7 n. I1 F% y; M6 [# W4 p3 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-9 02:14 , Processed in 0.039307 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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