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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) Y. _7 G6 U9 I
#include <linux/init.h>6 C. S- r, r9 Y( D
#include <linux/module.h>
% W) p# P/ k4 C0 n. l' Z! R* r#include <linux/kernel.h>, s' W, [. E/ I/ X
#include <linux/types.h>, X! f6 i! H. q  H# m# V
#include <linux/gpio.h>4 @7 G$ X* M# v" Z) H- D/ f
#include <linux/leds.h>
. U% h( w' j9 J! t5 ^#include <linux/platform_device.h>
6 V5 q# a$ G+ U8 m' a" ~2 e
% p1 D' ~) B1 v. @#include <asm/mach-types.h>: J& {7 M) C+ f0 R7 h. E
#include <asm/mach/arch.h>4 l5 c: K9 w  @+ s
#include <mach/da8xx.h>
8 v* y) D5 C6 `' @5 E#include <mach/mux.h>
' k+ G2 e/ ~5 M) w/ N$ j
) g& n1 l4 `7 C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)) E2 Q0 T7 S" ^0 k9 f# g0 n. ?
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ m. T' y1 K* A5 \#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# p: T) o% ~+ t) n8 f0 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
- y4 {0 l; K! Z3 g5 q' R/ ~! o
% |8 i( l% K/ ]& W: ?# K9 y/* assign the tl som board LED-GPIOs*/% W5 e# }. W0 @  A! P; I1 M# N
static const short da850_evm_tl_user_led_pins[] = {
. @; E$ w) b) F: K        /* These pins are definition at <mach/mux.h> file */
. v. b; f9 x7 v: x, F% j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- S* v1 m+ K% n/ C4 n  u        -18 u: q9 _# P6 K, {3 j0 ]& I( y
};
- p# G: X0 O2 T9 {! y$ ]4 B& A3 q; {/ V, v' ?% ~: W/ N8 w+ n: i+ g% l
static struct gpio_led da850_evm_tl_leds[] = {4 y! k5 O$ c8 ~/ `
        {
2 F& X: _: ]- ^/ \1 U                .active_low = 0,9 K* _3 L4 p3 J# ^! p
                .gpio = DA850_USER_LED0,
  U. G3 j+ o8 B( |3 x                .name = "user_led0",( R  s$ T+ u' C- b3 |
                .default_trigger = "default-on",
8 r0 G. N" \: K, ^8 _2 [0 g  r        },
/ b( R' w4 z) J" L        {- ]/ p& k( \! p. W) i* l
                .active_low = 0,
2 w) _- X% p7 u                .gpio = DA850_USER_LED1,
7 l, @& s8 s  G' J, S  t- _6 b+ v6 c                .name = "user_led1",
' s# T. t5 o6 {! a                .default_trigger = "default-on",! @8 z& T. V( T* O8 r
        },
5 [- T! K! ]/ s. J& [, ^        {
) f" B0 |% D9 o* W/ z. \                .active_low = 0,
) f7 b$ m1 D' f9 O+ }, p                .gpio = DA850_USER_LED2,
) X) C6 r% Y4 t4 F2 X  i                .name = "user_led2",' L: v6 N0 c. j" b" P- G
                .default_trigger = "default-on",; c  Y' S! ?! K2 P0 b) F9 i
        },4 O1 v* ?. M, Z4 X5 w
        {0 n3 _: e8 ]$ ]: L
                .active_low = 0,
* f; W$ A4 i" @& t/ r/ U, m6 V( G                .gpio = DA850_USER_LED3,+ _# k7 Y- D( m7 ]1 G
                .name = "user_led3",- @1 s; K! ~) [) W3 [* o( p
                .default_trigger = "default-on",
+ D7 _7 X) l& v" x; o        },- R& k7 P8 C/ J8 |) H! Z1 C0 F
};
2 X$ Y8 J5 y/ u" A2 ?) c# b9 M9 F* O! u0 W" T7 B( d
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 T. r" Q* a- e8 B9 I% B
        .leds = da850_evm_tl_leds,
) Y# U: z- y+ [" U        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),# V! |4 X8 ]# b6 p. u4 D4 A
};
6 I) w! P* v/ n% F1 k' j1 m% f4 K$ p3 m6 `" [5 K
static void led_dev_release(struct device *dev)
: S) u6 V% C) T) k1 H8 {{7 v' ~; d! B/ s- d/ u  }% v
};
* u# P/ Q9 y$ X" b: A& \
0 z, x) s6 j4 X8 v. kstatic struct platform_device da850_evm_tl_leds_device = {4 j/ y2 c  @. D8 z' u& j
        .name                = "leds-gpio",
  {! z2 z9 V6 z; f0 c' o: {. b        .id                = 1,
5 `9 b2 F$ P! A# f        .dev = {" _5 d! q5 ?5 ?# k2 u" f' [( [
                .platform_data = &da850_evm_tl_leds_pdata,
; v2 v; i, v& m7 S                .release = led_dev_release,
! u6 |6 n# ^3 e        }
$ t8 U4 O, r: ~};1 _/ ]1 p2 z: r1 ~+ k" n
* C5 G! ?" S" `+ r7 n3 d* D
static int __init led_platform_init(void)# W2 `  b% N3 ]- Y9 c4 ?4 k( g7 r
{$ i/ g# c8 K) O7 g2 K
        int ret;( z$ F' i% C* [2 |- X
#if 0
3 M4 i3 Z: N9 A+ _        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! I3 l# O& d3 j* ~, h
        if (ret)6 c0 Z, S! V" F4 c3 |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": n) q' ^' m4 L6 h6 A
                                "%d\n", ret);
7 v1 O0 c" C$ y% N' Q#endif2 ~! s8 v" Y6 n2 k; [
        ret = platform_device_register(&da850_evm_tl_leds_device);: w0 U3 j) y, f+ Q7 H
        if (ret)
; ~( T% E$ _' J1 U! l+ S                pr_warning("Could not register som GPIO expander LEDS");2 L4 p. p9 d) j2 o. S! Y6 h
        else
1 O6 Q7 O: d: \( B1 m* ^2 Q                printk(KERN_INFO "LED register sucessful!\n");  V* n* R$ |1 f% t% Z7 p

/ B- o$ Y, e, y/ c% A        return ret;+ n, {  }- H! ]& X5 [& R
}1 m; v7 ^2 L; s, x1 [6 X# u# C: P

9 e/ y/ i' ~5 c8 L7 e- ]static void __exit led_platform_exit(void)
3 n" q' W+ \4 z3 y# ?{
3 P$ ~. t" d! J8 j8 c: X        platform_device_unregister(&da850_evm_tl_leds_device);
+ @5 j6 m, y9 L% ]
# m0 A9 e( p3 U: U) w( x        printk(KERN_INFO "LED unregister!\n");
, J+ I/ K, ~7 i' W}+ n6 J9 R* ]7 p, g  ?) X

; Z! \% ^% Y* c9 Gmodule_init(led_platform_init);' |7 K) \! x/ [  H
module_exit(led_platform_exit);* s5 r* ]  w) S+ L
3 \* k; Q6 g0 N
MODULE_DESCRIPTION("Led platform driver");; {, ]4 s! z! @5 F# o. B
MODULE_AUTHOR("Tronlong");: f+ D. g! h# D* n; T) i8 w
MODULE_LICENSE("GPL");
; g4 D' a' Q6 W4 ?9 R' i4 V$ R1 B8 E9 b* z5 g% I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-21 07:51 , Processed in 0.059221 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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