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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- i- b/ ]9 E) ~
#include <linux/init.h>
, j( c) N1 Y3 z. t5 E. g) H#include <linux/module.h>
( d3 n. W6 e) @# B5 \6 p#include <linux/kernel.h>
8 M( D* G  ?2 ~- ~# b#include <linux/types.h>
9 t! Z1 [  r6 w8 J. Y+ ?' S; U#include <linux/gpio.h>
/ j, b' {; P& J, F! B9 t; z( k#include <linux/leds.h>
) H0 [. O/ [, R7 F  w#include <linux/platform_device.h>
! t! _2 c) ~$ e& V( V
5 H8 _# \4 b; W+ s) J#include <asm/mach-types.h>
: d; G3 _4 x7 @# g. p4 _3 s$ C#include <asm/mach/arch.h>- ~+ n  O' Q+ o2 A, ~! p3 j# Z
#include <mach/da8xx.h>& Y3 N* `& _2 e# h) a  E: }. w8 i
#include <mach/mux.h>
# z0 T3 q3 u7 _0 f+ A" w+ t' n
4 E& o4 O9 c( q2 l" |#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- {8 O8 h5 E, b- a$ B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  Q/ V# J+ D8 [; U" ?% F$ s: g8 F
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  w! Z5 z( e% x6 R#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 s5 ?* r1 B3 O; K5 n- t; D: L6 K5 b. t) L2 ]. S" h, `5 L
/* assign the tl som board LED-GPIOs*/
$ x# z7 `$ `. M2 F7 n$ rstatic const short da850_evm_tl_user_led_pins[] = {6 ?7 O; i* `, z
        /* These pins are definition at <mach/mux.h> file */9 D# [+ p* m3 Z) v" L9 |( S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! i, P5 x+ Q7 G# J; ~        -15 e' |1 u. Z8 f- h+ C
};
! J( k- `6 D! `& m8 e4 l
2 \7 x- r0 ^! Z! x! d' ]6 Vstatic struct gpio_led da850_evm_tl_leds[] = {
# B# a2 r  O/ C$ t+ y+ @3 N8 v* I$ Y        {# x8 R( V+ E8 f9 F6 ?! M0 c1 d
                .active_low = 0,5 d9 s/ t7 o6 E
                .gpio = DA850_USER_LED0,: o+ v; X5 R/ g9 g
                .name = "user_led0",/ V5 y7 r8 E2 y5 O  c' E
                .default_trigger = "default-on",$ ]1 |! e8 X5 v2 e9 i, |3 u7 z
        },
  G" P! y( d9 q3 d, d        {" F# c# X7 ~; g4 J- ]$ X
                .active_low = 0,
1 ?9 _4 y- g% X                .gpio = DA850_USER_LED1,, k5 {0 t" f/ M
                .name = "user_led1"," H2 f  O5 n+ b9 \- i1 |
                .default_trigger = "default-on",
1 y* k, M/ K! I4 l/ Q        },% v+ ~  E4 B3 g
        {
1 j& J2 P; j8 T4 f                .active_low = 0,: v5 K* r  w' e: i! z+ f2 u7 x
                .gpio = DA850_USER_LED2,$ B+ [' s5 M+ P+ J
                .name = "user_led2",. a: l% x7 M( B+ P- m+ Y
                .default_trigger = "default-on",
% l) s- b9 O' p( M* z" y' I        },2 C% l& _& z6 [5 g; r5 i
        {4 r& K+ ^5 d+ u2 a  y( J
                .active_low = 0,
$ w1 E, q  y  W: z                .gpio = DA850_USER_LED3,
+ ^- A4 R3 A1 \! l% z' j                .name = "user_led3",8 ~- B) K: I  \  \# H9 X
                .default_trigger = "default-on",9 M" I" k2 m' |# m' ]
        },
# K3 s3 p' p; {8 T) s};5 A% b. a8 N6 U: w) h
* {6 Z( z! Y& A& N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 H- F8 [, Q# s- ?        .leds = da850_evm_tl_leds,! n% S. q/ t/ H' M9 v3 F3 a
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
: f1 }  G$ W% e};: y( X. f9 @+ q) p1 [# v/ j
  u5 F6 x: }7 Z( D6 X& V  O- g
static void led_dev_release(struct device *dev)
) P8 d  r. l) {  x% w8 S{
- |6 T% J5 X8 h# M8 ?};3 s$ c# K; i$ N$ k7 Z8 A0 B8 h

2 r- R4 l; ^' B0 [8 ^static struct platform_device da850_evm_tl_leds_device = {' S4 L" e6 v" F* c8 ]; p
        .name                = "leds-gpio",
* X1 [! n/ t% |: ?* ^) J* d        .id                = 1,% E# q$ q0 z: z- r0 h$ g8 g
        .dev = {6 Z" _0 _% q- i9 `
                .platform_data = &da850_evm_tl_leds_pdata,: `: o/ g% z' v1 Y* u' ?5 H
                .release = led_dev_release,8 z9 N. i6 ^; v" y9 Y
        }( Y! i" m3 P* I# v
};9 t( S$ m3 N% J/ j7 u% _

. k! I7 f) U9 `% V7 a& ~static int __init led_platform_init(void)
3 \- N  K( Z# C8 Q" w* I* }{
: f; B5 D+ K$ K        int ret;8 q$ |% v$ P: m& t. x0 t
#if 0- @! R" `7 i- x
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! d0 ^) R" q: y+ ~+ ]1 |
        if (ret)
% ^4 W4 E4 W! _) W8 K9 ^- R2 x- ]                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"2 g& j+ r/ L; y0 H) H/ w2 `
                                "%d\n", ret);* \2 E7 E6 U5 J3 G: n- v, {* I
#endif4 Z" `- p, O& y" i5 l) O! R) Q% D
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 Q$ h$ u/ h/ T1 U) n* p        if (ret)
  L& Z9 Q/ \% o- W+ ]2 F% F" A. [. z                pr_warning("Could not register som GPIO expander LEDS");
! G' L% `# G9 s4 N( K5 }        else: G& j! T' D8 G
                printk(KERN_INFO "LED register sucessful!\n");7 t* \. e8 z6 W
3 x2 o9 g, j/ T8 K7 [/ k; ?' b
        return ret;
, v4 K" ?$ ~. Q0 t}
, ]( f) ~0 m1 B* h) a" |
1 `: e. |* e7 Qstatic void __exit led_platform_exit(void)
; r: c% P2 p0 d0 F{" {8 ~$ N: Q4 [6 ]
        platform_device_unregister(&da850_evm_tl_leds_device);
: E! a# J0 D' r+ b5 _" d1 i/ I  J# z3 W4 j$ ]
        printk(KERN_INFO "LED unregister!\n");
& u8 C! \; m3 R}$ U2 E; R" ]4 H7 U9 e: R6 M
, Q5 t8 V; p+ H3 b* ?; e
module_init(led_platform_init);) i: S% x- G! y
module_exit(led_platform_exit);5 n* `& e# @$ I3 Y' L1 w& b2 G

- p4 V9 |' H' C! _MODULE_DESCRIPTION("Led platform driver");5 p* o6 d, D$ Y% i
MODULE_AUTHOR("Tronlong");
( M& P1 Q& A4 |$ U* }& V8 {MODULE_LICENSE("GPL");5 A; ^. Z) A0 {/ Z: a

7 d1 }$ }$ u( @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-29 04:27 , Processed in 0.036115 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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