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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: ~! F7 W2 F5 I: s, w5 D/ b; }, g#include <linux/init.h>; W1 K2 p* r* H$ f( ^
#include <linux/module.h>
3 R% ]: y) i/ P  B8 i. m0 G8 s#include <linux/kernel.h>+ T  }, J0 n" ^# C
#include <linux/types.h>
7 b3 S- D( b1 t" D" I* F; w0 ?, B) w#include <linux/gpio.h>7 N8 l+ p0 s3 n1 p& h4 T) ~' L; g
#include <linux/leds.h>9 {# I9 j& o4 U
#include <linux/platform_device.h>
/ y" v+ t/ s) h3 h, J- i
. Y1 W5 D! U& X$ g3 v% b#include <asm/mach-types.h>
) x# p: y7 }5 `& X9 T. P4 S3 P#include <asm/mach/arch.h>: \- L3 l. C3 @4 ?) e; j. F
#include <mach/da8xx.h>9 h$ X% ~5 X4 d/ ]& w$ l2 I& u" W
#include <mach/mux.h>8 ?7 s1 |; ]8 l" n) d; d

& q9 y$ ?. I; T$ _, D( B1 n9 b5 W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
: J8 Z4 i- B- Z" S. x+ p2 y#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
1 j) D# U& K( k9 `# _# r8 R/ G% C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 w- K8 J; \. T8 z% x; H
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% f: t5 W" t& [/ y5 l3 u, N# [
# x7 D. [0 N1 I, W  |' r/* assign the tl som board LED-GPIOs*/# L) i. E. {& @. a
static const short da850_evm_tl_user_led_pins[] = {
7 a% L" Y- F5 R# L# v7 q3 H        /* These pins are definition at <mach/mux.h> file */7 n9 [. h3 T- i7 o+ i6 f, ~. |1 n: c/ V
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; x9 v' G2 b% `- B  u7 h        -14 E( j8 I4 C% c7 f, C$ h, k( U
};
+ Y8 U9 s# K" W3 m. v- C4 A8 k' B3 P6 F+ f
static struct gpio_led da850_evm_tl_leds[] = {
5 ~/ _7 M/ d4 h; T        {7 h/ h5 J1 B! n. e* J1 B+ j; M
                .active_low = 0,
+ y( k0 s/ h! I5 {: Q; f/ @! A                .gpio = DA850_USER_LED0,) P3 ]; F1 u1 S% l- I
                .name = "user_led0",
# r/ B( ~, Y; ^! l; I1 {/ p                .default_trigger = "default-on",4 \! j$ }4 K. T1 ]  u
        },
* ~  x0 O, h. _+ G2 ^+ \        {- q# I. G& Z  K0 s/ U- x# c
                .active_low = 0,
0 R9 Q$ B: k6 J1 L! S, `                .gpio = DA850_USER_LED1,/ d2 U) M% M; n5 R7 k9 y2 o
                .name = "user_led1",
9 I* [* u/ }9 u: m* ]( l                .default_trigger = "default-on",& G" {& L* Z* a- i
        },
& J  d4 R6 y$ q) f) ^        {) d' r) m( |4 O5 U& L" r* [
                .active_low = 0,- g" |( A2 H1 j7 P! ~+ i( }
                .gpio = DA850_USER_LED2,
. a! ~) K. y; U3 Q' ^/ W                .name = "user_led2",+ |# Q8 |7 y8 C
                .default_trigger = "default-on",
" L) X, J" p2 p9 f' |% d        },& K5 Z- d9 d# l6 O( V+ E
        {
3 w3 {' Q/ l. s! q                .active_low = 0," F8 `7 S! M0 _! A& ^; N% q$ O
                .gpio = DA850_USER_LED3,
( {6 G$ i' ^& G0 _6 Y( \8 u                .name = "user_led3",1 K& _1 ?1 }* n4 D
                .default_trigger = "default-on",
$ c3 M$ E3 i. f9 ~) ^' Q        },4 h3 |: |  K( C. J  [) i
};4 s4 w! I$ {/ i' e4 P8 u

' d# O7 |" r/ \9 }! Y, D! U2 zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, ?/ P) y9 k. a, L        .leds = da850_evm_tl_leds,
) E. B9 x/ `0 p% B5 q- K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* j1 V3 w" ~6 Q* p  Q# I/ B
};* c- E0 |$ a: d# l! N6 R
: J' Z% {9 z' [2 j
static void led_dev_release(struct device *dev)6 a: s: C. `( U  d) c" n8 Z
{
8 P; c+ a3 B2 N0 X$ t};
1 J& b/ a* z( I* @; v# p3 \( Z" R$ T  Q/ `3 l
static struct platform_device da850_evm_tl_leds_device = {
! Z1 E" R- `) }* N6 z7 j& J$ s! v        .name                = "leds-gpio",) i0 b9 k4 X! c) Z; l
        .id                = 1,
& u" V0 G' w4 q5 A        .dev = {
) a2 d' S5 B8 K0 T* R- p5 z7 v: [                .platform_data = &da850_evm_tl_leds_pdata,
, P) h* G& ]7 ]: p9 B0 g                .release = led_dev_release,
% B4 S5 o/ l$ F: Z3 \5 {+ g# {        }" z2 m4 u" b0 ?
};
5 a! M- g  y7 M4 E" b/ s! e% B$ A. y% x6 \
static int __init led_platform_init(void)
5 I- O. h" G% k5 ?% W3 X+ _' L/ H{6 M3 m; T& v# R. A; c  C4 v
        int ret;2 I0 B. \: @8 Q
#if 02 s: K0 M7 v4 e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  U5 l; ^# B1 G; T1 f
        if (ret)# \! B  u; Y9 `1 A7 S9 z. u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
) H+ p$ U, N  Y1 @1 E- U4 F                                "%d\n", ret);
/ w2 b) ^! d# c; Y. `#endif5 i- L* ^  ~* r; X8 w0 [! D
        ret = platform_device_register(&da850_evm_tl_leds_device);6 S& C& q" j( R  U7 e
        if (ret)2 W7 E2 {, ^4 D3 d9 r$ q
                pr_warning("Could not register som GPIO expander LEDS");5 @/ @# O8 s" ^" T0 j5 [6 X9 L4 N' S
        else$ V0 q* X- x" }) h
                printk(KERN_INFO "LED register sucessful!\n");
" R6 N- L  n" o: R5 e# y) {4 T6 Q
$ }1 X4 z  r3 L2 z2 n% c; m4 S% J: i        return ret;
! e9 o! F8 ]3 t* W3 w' J3 {3 K) \}
& K5 a- N: Q& c0 f0 L/ q  @' p: C: }  B" `* J7 g
static void __exit led_platform_exit(void)
0 ~! ~) a5 X2 ]7 B! a{7 e; V- K7 K7 M; a  C
        platform_device_unregister(&da850_evm_tl_leds_device);
1 s2 H: \+ k7 ]: K4 t: E/ _6 t' m2 P0 N: P0 t/ Y
        printk(KERN_INFO "LED unregister!\n");# j9 w  Z. I8 p% D7 j. M
}
" Z6 }  k+ s4 H/ i9 m( C: l4 l! i# y  S6 Z- S" l# P
module_init(led_platform_init);3 ?3 E0 q' O+ ?
module_exit(led_platform_exit);0 \' v" [# Z" E1 N1 o0 H1 R- a
2 T6 G9 ?( z+ x: K) ^; j5 L
MODULE_DESCRIPTION("Led platform driver");
. E" d/ F% T1 o$ oMODULE_AUTHOR("Tronlong");
& ~! Q$ {7 e9 N% L3 w) UMODULE_LICENSE("GPL");3 `# d9 `" M9 C
% W* u* S# N! h+ Y7 L. a7 s3 T
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-19 01:56 , Processed in 0.047354 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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