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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; K- H# g6 }/ a#include <linux/init.h>- M$ H3 i$ ]& V  X4 M
#include <linux/module.h>" j3 {0 V7 B  o+ y
#include <linux/kernel.h>
. G2 V+ H2 z) ?! B# o2 ~#include <linux/types.h>
# d9 ^  O# l- h2 c. z#include <linux/gpio.h>
5 _) F( s+ x# t2 f" m#include <linux/leds.h>( ~  ]9 u; ^4 D2 U
#include <linux/platform_device.h>
6 Q) |# d1 L7 _) F) t4 \* T( A: q; E9 @
#include <asm/mach-types.h>" N- o, i! ?: y+ Z$ z" X3 s
#include <asm/mach/arch.h>
0 g  {( L/ I$ W3 s6 V( w#include <mach/da8xx.h>; v* e  }& j5 H1 h7 f! T
#include <mach/mux.h>
' V" W1 m/ l0 B: B4 I+ k/ \/ n: Y. L0 L: h. g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) g; F+ G1 ^+ o
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. q7 e7 {2 T/ \: c6 e) ~* i#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* q( y4 z2 w# J* H: ]5 k
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  `5 C, _, b  U( H
+ d3 k! H8 D! @) d
/* assign the tl som board LED-GPIOs*/
& l& a  \9 g& d. ^& Gstatic const short da850_evm_tl_user_led_pins[] = {3 o& V+ [. i+ l7 w$ Z& i6 O% F% y
        /* These pins are definition at <mach/mux.h> file */
: V) b* }# k( s( Y; K+ G. Z- ^) V0 B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! H' A5 `! C, e: h: ]! J% }( A% A
        -1
# l# X8 N& ~% K6 N};
- P6 s0 g# x8 b3 o2 f, M( {' r3 I: \+ o' t. R0 H
static struct gpio_led da850_evm_tl_leds[] = {
1 p+ a0 T6 Y7 f/ ]/ ~        {
% P( v4 q+ B$ A5 P, {                .active_low = 0,
8 N$ T" h  C. M9 z5 w! q                .gpio = DA850_USER_LED0,7 Q. R7 f: S/ q1 T7 K" i+ M- ~
                .name = "user_led0",3 C7 v" E" h6 @  K
                .default_trigger = "default-on",' p1 z2 n, `5 ~+ g0 z
        },
% ?( W* J+ C6 `. C- o7 X9 r2 Z$ T        {; Q0 h1 Z) l* ?0 K7 d  M2 j
                .active_low = 0,& J+ Z! N- w0 i  S8 p' f
                .gpio = DA850_USER_LED1,
# Z5 F9 c) p* m7 x5 n" X9 D; P% F                .name = "user_led1",$ b) U' z3 k' C+ Q
                .default_trigger = "default-on",
. v" ^9 }& d8 g, h1 m. U        },
. S' z2 G3 P0 m+ w! f. P        {" j5 J* @+ L" L/ b$ w
                .active_low = 0,
& T$ n  E: n) F                .gpio = DA850_USER_LED2,/ M' ]' O! ^. D
                .name = "user_led2",
) V$ z& m% Q) a. ~% Q4 E  ~                .default_trigger = "default-on",
( T6 |# Y) W1 L; b4 E" `        },8 t, c1 m# S( u3 v% T
        {# ~0 c7 V9 I$ ]/ @9 Y; D9 G, {
                .active_low = 0,
5 y4 {) X0 n) Z3 Y$ n0 H# h                .gpio = DA850_USER_LED3,) V% f' ?# A  ?) e+ H! e7 m, p
                .name = "user_led3",
' l7 s  r! o1 l$ o: v                .default_trigger = "default-on",: Z# _' t; |: w9 |* m/ C
        },# f( E6 p- j5 {6 ~0 y
};
  r1 e  C' o& H$ N; w/ R# z8 }" l* f( c, O5 y/ Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% b" Q: ?' Y: N
        .leds = da850_evm_tl_leds,2 l2 A* i' m5 I4 ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 e; E# m8 K, x3 a9 c9 `
};
2 z# B; t4 u+ W6 p: A6 b" Y6 g/ Q3 j+ |" O0 `5 q+ @
static void led_dev_release(struct device *dev)
; f0 f7 `9 f3 W$ x$ ~' U4 j{( x1 X) B: E3 K) x! ?
};$ a/ K& _( H3 O7 M8 k5 Y
$ v/ l. a) H2 v* u0 U
static struct platform_device da850_evm_tl_leds_device = {
) f0 u9 v! z2 D  A" Y+ C7 |$ v7 a        .name                = "leds-gpio",
" o; u3 ?% U6 M. ]: \0 I. U' c        .id                = 1,
# s2 h# ~+ w  |" c% C) A# S1 w        .dev = {" X) @8 E1 U) Q. H! Y
                .platform_data = &da850_evm_tl_leds_pdata,
- G% V5 y, U7 F7 T. e8 N- {                .release = led_dev_release,
# M: {3 N: |( \- ]7 j0 Q        }
! ~- S7 N* R' W- y7 K+ n1 T};1 f5 S( x( G6 B" l+ c& O) l
- J3 ~% o, L2 U
static int __init led_platform_init(void)( Y  ~* e9 ]: k$ e& ]
{% m. ~7 G3 W4 p$ l/ ?
        int ret;# L  _) c9 C# j2 ~
#if 0
" P) k5 X8 r: P0 B$ L8 I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 @! H6 {% {) K0 r1 |* s        if (ret)6 g/ i2 G  O7 g: T; V/ H
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 Q- L8 q# e$ k3 D; W
                                "%d\n", ret);3 N, V) K( m. k, M
#endif. Y2 n) d) T" F$ {0 @$ `
        ret = platform_device_register(&da850_evm_tl_leds_device);, q0 h- d' ?4 g  Z) [) t, ~* k
        if (ret)
6 [9 u) u3 L5 T1 `  }8 D% u' L                pr_warning("Could not register som GPIO expander LEDS");
% B2 W+ b/ j- X        else
- t5 ]% P1 B5 X; d( I/ O0 b                printk(KERN_INFO "LED register sucessful!\n");
1 i8 Q- S! |9 N/ C/ \/ n5 D7 H
7 L4 z3 M% \: |. ^  j        return ret;
  r& H2 r" b; j}, Q4 Z: q7 E0 y( B9 n

' j* d4 m# x" _4 _1 V7 U2 gstatic void __exit led_platform_exit(void)
4 k7 d/ r, J0 |+ e: Y9 N" m{2 X+ A3 V# |$ R; ?8 m# P5 v0 i
        platform_device_unregister(&da850_evm_tl_leds_device);
  w7 c) a$ s0 p& }
) m; m7 j3 h. ?, ^' d        printk(KERN_INFO "LED unregister!\n");; g) v4 Q/ T: `' [3 {; r* o  h
}
, S- ]. \; v" l, {* B. j
& S1 b4 W2 t1 M9 S1 ~module_init(led_platform_init);, X4 v9 H; n0 c8 W/ N% s. G
module_exit(led_platform_exit);" ?5 X$ d* L5 e. A: ]
" }4 V4 I: H. J4 d1 _
MODULE_DESCRIPTION("Led platform driver");
  b+ d8 [% m7 e  FMODULE_AUTHOR("Tronlong");& ?. m0 h: V5 \- d4 b6 t
MODULE_LICENSE("GPL");2 K; p4 S0 w) K! W5 t' }1 E, S: R

9 C3 J& x+ S: R* J: i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 03:24 , Processed in 0.039029 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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