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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ K/ G9 a' l6 v! y5 c$ t( }& p
#include <linux/init.h>
9 H3 k: Z/ Z: e% J2 _/ I  \+ W#include <linux/module.h>7 p0 O; |9 J: N0 W
#include <linux/kernel.h>/ W! o1 z3 K4 C+ J& U7 p6 T# W
#include <linux/types.h>8 b4 `; j1 }6 P" n* r& J
#include <linux/gpio.h>; n6 d1 s4 b- k5 U8 n5 ?
#include <linux/leds.h>
; C: Q: j# Q" l& G- p#include <linux/platform_device.h>/ i( r, c0 k+ y9 T
. `! S" U* \5 `- \. m& h; F
#include <asm/mach-types.h>) \6 d3 T+ x$ j, Y  Y$ S- }) p
#include <asm/mach/arch.h>
5 w6 ~$ }) k% @! o3 N#include <mach/da8xx.h>
- `1 u0 T+ i8 V: J#include <mach/mux.h>0 v2 m$ L" f( W: c* f
* I1 Z/ i3 V* v3 T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) s6 W) l! E+ H. \- s5 f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 G5 h& \+ K( b7 N, x
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ `8 v* p/ m7 V0 C2 b9 f/ ^#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* E2 s* w9 u- G

- A, G4 k& O. f0 m) \/* assign the tl som board LED-GPIOs*/
( B& U: p: t- ^+ ]/ W4 n; Xstatic const short da850_evm_tl_user_led_pins[] = {& c3 F, B4 o+ t
        /* These pins are definition at <mach/mux.h> file */) W" }0 D. l3 d" j; c5 q4 J+ f
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 f4 F, ?7 ?& V1 w( ?/ g
        -14 A7 V# J% L2 D, V& O1 e
};1 `' C, z  j1 {5 p. c
8 u8 |7 f2 D; c* W/ \
static struct gpio_led da850_evm_tl_leds[] = {, m3 x! \- Q& l2 h) z7 U/ n) Q# o) [
        {
9 u9 w: {% @+ d5 m  R" w; @                .active_low = 0,
; c0 u; E) E3 r8 E                .gpio = DA850_USER_LED0,+ A, o+ L- L5 u5 ?' }. |; V8 ~% Y
                .name = "user_led0",- ~5 t2 ]  K1 Z8 a
                .default_trigger = "default-on",
; T/ K/ u: F& w! A+ g. ~% g9 c        },6 Y: i3 @8 }# O7 U2 ?1 ^
        {
" V' c' e- m& X! J" x# e0 \# G3 P                .active_low = 0,0 I- x& @4 F  U( [! ^, T
                .gpio = DA850_USER_LED1,9 ?7 a5 Y3 M" q' o' l% E" m
                .name = "user_led1",
7 J9 c; N/ l8 K. ?4 w7 o' B                .default_trigger = "default-on",
; P& z0 U" b6 z        },3 }7 r+ h5 O: K0 \
        {
. [  W- U/ M% @" o                .active_low = 0,+ E5 _9 l6 k1 T
                .gpio = DA850_USER_LED2,; u- s4 {8 u0 {8 W
                .name = "user_led2",# }! F7 t1 A0 z# W$ r
                .default_trigger = "default-on",2 q* f" l7 {. S: a/ J
        }," @0 ~) A0 [0 a
        {0 M/ @# ?9 ~4 U9 \
                .active_low = 0,
8 O( J! O( I  @! j2 N/ ^                .gpio = DA850_USER_LED3,
* b& x6 C& v5 f+ g7 L' `% P                .name = "user_led3",
( z+ V  D- c; t" u, ]5 Q- f                .default_trigger = "default-on",* v3 O0 F. N4 s* ^; n3 d$ F3 v) r
        },
& ~! H4 w6 E) l3 M2 X. n+ w};
5 W2 P2 p  C* u# e6 @. D0 _0 s  B- x- k' s7 L5 N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. a9 c1 U- O9 c5 F7 I( w        .leds = da850_evm_tl_leds,
/ |6 }8 K# d, n3 v9 ]8 s, f        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# e+ Z5 W; X! f# b};
) V3 J  J9 W  P7 p
$ w  U0 P1 l& {" @  p5 r7 g/ istatic void led_dev_release(struct device *dev)
  y+ I7 P% [8 h6 m. p; U/ c, ?{
* }' {: i  y1 b! T0 L};
3 A% L, S4 h; k) }- `4 y" B" F" `; _3 G0 g" [
static struct platform_device da850_evm_tl_leds_device = {
0 Y- t* u% Q: E3 ^6 a( @& z        .name                = "leds-gpio",
3 d6 B7 n; q* V$ ~/ U- s        .id                = 1,
0 Y- ^4 t: W$ \5 L  k        .dev = {6 ~; B7 T$ p6 S# g
                .platform_data = &da850_evm_tl_leds_pdata,, q6 V9 T) {2 V' j5 f1 v8 G
                .release = led_dev_release,
; D' h5 R4 L1 F        }4 l% j$ P% L3 W# e$ p! ^
};
( B( T% y6 _# {9 C% h" U
7 ]9 H9 F+ N$ t3 w/ j0 a0 J  Qstatic int __init led_platform_init(void)6 u7 h) E% u. q3 c- _- h3 D0 i$ O
{
& ?* e" k& W" e1 `" h  i" q2 |        int ret;7 I) ]; G' A3 x& Y4 ^
#if 0* X0 X/ _" Q1 ~
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. d3 i, a  h% W0 a* c
        if (ret)
6 D4 s$ o0 L. B; J* y1 h: g0 d2 f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ w1 [! A; W& d; G8 e
                                "%d\n", ret);; w4 I1 ?8 Y" l2 G% R. d
#endif
  Z6 Q6 [0 R- e- x: q2 S        ret = platform_device_register(&da850_evm_tl_leds_device);
. u7 t! w, R; T- L+ H; S        if (ret). g* J! N) i8 n" q3 c
                pr_warning("Could not register som GPIO expander LEDS");* T4 u" r8 g: T' ^) K
        else: s+ x$ ~" v+ W) R- J
                printk(KERN_INFO "LED register sucessful!\n");+ H- d; J. F5 w2 y+ u/ S  }, R1 u" i
4 c  _( v# _$ I: w8 M/ |
        return ret;
6 c9 e, n) t( z5 Y. G) M6 }3 s% M2 i}
+ _3 b* p3 U) Q/ J% ^9 ^; [, z2 o# r9 j+ [, q% \; \& d+ p
static void __exit led_platform_exit(void)
% c! \9 |! C# U& _4 p6 q% Q{
: m. D; @+ J( B& T) @9 l5 e        platform_device_unregister(&da850_evm_tl_leds_device);
! ~1 d; Y0 T; f6 x( A' C* C, F6 l* `" u2 B& J- h9 _7 O( {
        printk(KERN_INFO "LED unregister!\n");
+ u  p/ Q) ?: g0 J( x4 }6 X}
  I; i/ x, k) ]' x
0 ~: ~9 H# w& {3 `module_init(led_platform_init);
" I1 n1 k7 r, T% N) t8 Z. C6 w* ]module_exit(led_platform_exit);
+ [( _# q/ |# s- E* Q3 b$ u% X- {/ q! s, i- `9 [
MODULE_DESCRIPTION("Led platform driver");7 I9 ?( `8 {, d8 S0 E# h& w! w" k
MODULE_AUTHOR("Tronlong");' Y; K; [5 O0 u9 a. O: i. s5 T0 L
MODULE_LICENSE("GPL");% _& N8 S: D& ?* C/ M/ u# H

% |. C* x( x: I6 ^0 v! a% }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-22 17:09 , Processed in 0.038708 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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