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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# T/ n! \( S! L#include <linux/init.h>
( ?% A- _) l3 H; l#include <linux/module.h>
  J2 {4 q2 c. C! I+ N) @. ~#include <linux/kernel.h>2 r# \. f* y5 R5 U: ]
#include <linux/types.h>3 n0 V* x1 z- ~/ \+ l
#include <linux/gpio.h>$ \* r! K. p# K5 `& b
#include <linux/leds.h>! K7 _) G! ?- [+ o& Y' C7 Y6 k
#include <linux/platform_device.h>
/ ?1 d1 h; t9 x6 }$ b. ?* R9 D4 }2 G. l1 q5 V
#include <asm/mach-types.h>. K9 ]( Y* |8 C" n
#include <asm/mach/arch.h>
7 m6 i& r0 a8 B  q" b#include <mach/da8xx.h>
1 u: j* C2 {0 N0 l( k' Z+ B#include <mach/mux.h>6 i/ q0 e  j0 G& T& G( Y+ `8 Q
; y5 M) R9 T: g+ b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# Q5 f3 \0 u/ Q- u: [$ R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; _* _' I5 v/ g; C: a3 g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' h8 D; U' \& A4 b8 r, R; \# M2 e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* G  H- R" T0 ]$ `5 N) }
' s& ^7 h( g* P. H1 P9 d3 S& m/* assign the tl som board LED-GPIOs*/( ?0 o" N; O2 g" m) \4 ], b! l
static const short da850_evm_tl_user_led_pins[] = {
# _- H1 i" f8 ~7 L9 _) D        /* These pins are definition at <mach/mux.h> file */
1 s! q' g. j& S! C+ i- j        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- I7 E- z% r7 c  B- `
        -18 J2 u8 ?+ a6 e5 s3 S1 k) c+ d- I
};) r: ?$ `/ D7 U2 e/ G

9 [* m8 Y0 G/ Z- h: I$ Gstatic struct gpio_led da850_evm_tl_leds[] = {
8 U1 {5 _+ x& ~3 w4 K        {, U! C5 S7 p% Y7 L5 R3 r
                .active_low = 0,4 O4 F9 d) P& A9 M2 E) z% m
                .gpio = DA850_USER_LED0,' Y7 T/ r  h% v- y0 |9 e
                .name = "user_led0",0 z# q( g" o6 ^( W. a
                .default_trigger = "default-on",
. P4 u, Z4 a9 @& B* q1 ]- Z        },
" |# [' f- g. y4 g* m- T* j  m        {
6 l; N: ]$ T3 f# M  d                .active_low = 0,
1 M4 Q- t# X# O8 G                .gpio = DA850_USER_LED1,
  v+ L8 H: B( `1 Q                .name = "user_led1",; E" e9 R! z& ?* m1 X
                .default_trigger = "default-on",
. \/ C& c3 i5 t, z  F3 n        },6 d& Z' A+ F- x+ u
        {
5 @: B( H( ^& b, S9 L& l3 a                .active_low = 0,) ^6 e; R' O/ L' ~
                .gpio = DA850_USER_LED2," H- U" ]: {; S
                .name = "user_led2",! S- |1 Q2 T; w; G% r
                .default_trigger = "default-on",# |% w. E6 U1 o& Y6 p* K
        },7 n2 ^* N" Y8 I2 \- U# v4 G+ v# U5 X5 T
        {% @& K- V3 C5 ~
                .active_low = 0,; t* r* V+ k$ Z6 l
                .gpio = DA850_USER_LED3,7 c  T. Q. z7 F5 ^% Z
                .name = "user_led3",1 W* e6 y, P* Q" x
                .default_trigger = "default-on"," ^+ L8 k$ y' K  w. A1 }
        },
$ x1 t3 B& g7 ^  k8 v! w* d2 ?5 @};6 E2 ~5 p9 k: R# F. T
5 o! P' W! o% w" B) v! w$ E8 |6 `
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% J3 j: z0 d6 @  _
        .leds = da850_evm_tl_leds,
4 A# [, {0 ?/ s4 L* u        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," O% n- f4 j- j) {8 R3 i
};
% d+ ?/ E% L: K( y
- U, `3 o5 j8 j! w# ]static void led_dev_release(struct device *dev)! v- F" _6 @" t* X
{: G% p- t2 s" F# T% C& ?+ b
};1 C  b8 w+ T5 i* G- P

  o/ t0 }0 c" I5 Kstatic struct platform_device da850_evm_tl_leds_device = {
  k7 |  `5 U& j5 H' P; H" o$ p& z        .name                = "leds-gpio",
: Z6 {6 z+ C0 w9 Q        .id                = 1,
% i: ^; M& `1 D" i5 y. O% |! u: f        .dev = {1 i9 F( ^5 Y8 C# z: u
                .platform_data = &da850_evm_tl_leds_pdata,
; C( L9 ]0 D* q0 O9 W                .release = led_dev_release,
: L6 L/ F7 w/ p( A6 y0 G6 V        }# t. q. T% p, `
};" |: l: H) L1 O1 I0 o5 q

* H$ x. o" E" u! Z9 a; |static int __init led_platform_init(void)0 t& J% h) Q8 v
{
" }/ ^4 C# F% \! T, h9 i        int ret;
+ H" g, W! h; b# |, b/ h#if 0
2 j8 g' @  e0 |6 P        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
) y- Z, K. N) r+ y$ R        if (ret)
/ C  e: m2 z# }. \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 U, I7 p! v; a! z+ X8 v4 W  J8 N
                                "%d\n", ret);( D8 y  D" ?7 ^' P1 {/ i
#endif
" A1 R, }; }" N2 k* w4 }) v        ret = platform_device_register(&da850_evm_tl_leds_device);' K; a$ g, ~% Z' O8 k2 }, `3 S
        if (ret)& ~6 ?: k8 I( `, `: f3 `
                pr_warning("Could not register som GPIO expander LEDS");
' e8 v. m) v" _2 B2 Q+ Q        else  X+ `- x3 P7 v/ L' H/ G2 J
                printk(KERN_INFO "LED register sucessful!\n");
! i6 y  R  D4 Z  o7 E' @
8 k) C' S  E7 {0 V9 y4 @2 J8 d        return ret;
5 x3 c  ?! R; n" X}6 r- F  F1 U* w! Q! }! h! h

8 [. x  `. v+ N5 }5 @* _static void __exit led_platform_exit(void)
0 S( _# a* _( `, h$ O6 [) Q0 Q! }' B{9 H# ]4 B$ f4 i: t2 v! I) t: N
        platform_device_unregister(&da850_evm_tl_leds_device);; s/ k; i% j5 y( L6 Y. n; T

. C# S# {6 [2 v* p4 j9 ?        printk(KERN_INFO "LED unregister!\n");6 B* D* |, G' X( P; N
}0 E( ]* z9 C2 e, |  S& c

9 n6 r" v/ U$ L) H3 pmodule_init(led_platform_init);) K7 K( z8 M& Y; ?
module_exit(led_platform_exit);
) W) i  x" O; k8 }' N" E' q+ d9 c- Q2 R) s# i1 M, p, b
MODULE_DESCRIPTION("Led platform driver");4 K  I; x* O, ?! k' i9 u
MODULE_AUTHOR("Tronlong");
7 v$ I8 e  ^# l( q& `" \, V" t: {MODULE_LICENSE("GPL");. R" `. X4 p0 S$ S* ]# o: t
. |" Z, Y. D7 v2 O) o+ w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-16 03:45 , Processed in 0.040900 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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