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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 _+ s( _' j6 y/ C4 G
#include <linux/init.h>
1 S7 G: n# i$ }$ l  k4 |7 i#include <linux/module.h>
4 l) a/ P/ {3 f: [3 _/ `( {#include <linux/kernel.h>
; y, X: H! I% `' i1 h1 F/ _  d#include <linux/types.h>" _- d3 K9 T- X6 |
#include <linux/gpio.h>2 G2 [( f7 Y# y: v6 H
#include <linux/leds.h>
3 m/ A& Y/ O! z1 p& [2 x% p" O#include <linux/platform_device.h>- E) H4 q* v- I1 Y; \

( {% E+ i4 O2 f' j( _/ [7 w#include <asm/mach-types.h>
0 p" Y% \' ^$ |) l: g#include <asm/mach/arch.h>
9 r0 r. @% J6 \: \. o& t& x#include <mach/da8xx.h>. g7 N' _9 g0 _- E8 U; L$ T
#include <mach/mux.h>; D% O& \9 {' k1 O2 p

- l/ |$ S6 |0 j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' x0 B: _8 K0 r) e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5); |6 d$ d, B8 H
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( E& ?, U  o! d' ?8 T: l; v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% o' \7 i: y8 k8 S+ [# d! b  S: ]8 c; U; V  [1 W% {# ?
/* assign the tl som board LED-GPIOs*/
) P! K! o. x) p' Z, W& Astatic const short da850_evm_tl_user_led_pins[] = {
: p1 ~' [; p3 X$ G! y' m" H9 D        /* These pins are definition at <mach/mux.h> file */
# H$ a. q( a2 c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: b0 W0 E4 T$ O( _
        -1
8 h' _" }3 T  `2 Y0 S# @};
" N5 n& J2 Z7 U8 W0 W
$ L& ]; A# H$ \7 Xstatic struct gpio_led da850_evm_tl_leds[] = {
" C4 M0 F# r+ A! [        {: p8 c' E) o5 _* a" Q% U
                .active_low = 0,3 Q; m  L8 `* ?* q
                .gpio = DA850_USER_LED0,6 C9 _5 J% }4 q8 @
                .name = "user_led0",
( W. H. t( q. x2 j: S                .default_trigger = "default-on",
) d7 ^! B$ q7 ]* ]  V! {! o$ a5 B# }  e        },9 k# L" e+ P$ ]
        {
7 [  }; S8 t. h* O                .active_low = 0,
1 w, h6 W0 X( ?& |1 P" ?+ e# h2 X                .gpio = DA850_USER_LED1,( p4 ?+ }: t4 C
                .name = "user_led1",
/ F( ]: A9 a' m. P: O# I# e                .default_trigger = "default-on",/ ~' N$ ~, k! Z
        },
" I+ D1 b8 z1 D" ~        {
8 n! A2 Z9 [* @- b) F2 [8 |$ d7 J                .active_low = 0,# p+ {7 o4 s' u$ q& u5 M
                .gpio = DA850_USER_LED2,( u# Y' P  y2 T  j1 b; i
                .name = "user_led2",
5 u# w4 X( |7 ~2 w                .default_trigger = "default-on",
( F0 U  ?" d; ~: m* K- v7 t        },
, O" D' w7 F- i! R1 i/ {8 {        {
( ]* {$ w1 R& N                .active_low = 0,& ?& S8 J2 Z4 G! d
                .gpio = DA850_USER_LED3,
' s+ R0 W# Q. [  O$ x                .name = "user_led3",( W/ ?" z# x6 n  ?
                .default_trigger = "default-on",
$ N0 n, l/ b( J$ |  x) D        },
  y, C% R* a. S  s  v) ^0 F};7 x3 Q2 G: v; x8 `* o& D, ^
- b  H# Y$ C. N5 Q2 ]- N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
- h+ }& }) {" t7 a- F5 x        .leds = da850_evm_tl_leds,
) U) M* ~" G- U, i- b+ [. r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- @8 n3 P5 Q/ d8 c" [8 {+ {
};; T7 t, E5 z1 i- t6 C& r' u
2 _+ r* b0 V/ P( t# x( _
static void led_dev_release(struct device *dev)
$ X. k" k5 {9 A& Z{' v  E5 ~+ }, V/ K& @$ T$ U) d
};' J" _; v/ Z& t* J
6 H# l6 b" k0 c* o
static struct platform_device da850_evm_tl_leds_device = {
- v1 K7 W) \& e6 g8 t# r6 X        .name                = "leds-gpio",
) {3 v/ T9 {  ~9 Y; X3 c! z( @        .id                = 1,
, o6 o" ^, k& `4 _$ L# \        .dev = {
9 q0 T* E* m+ B0 M2 G/ y. |                .platform_data = &da850_evm_tl_leds_pdata,1 u( y  K: }( |! l; x* f$ v
                .release = led_dev_release,) X8 G6 M; b, c8 y% J9 n( ~, [
        }% T" e" J) w! R3 O. F5 P! l* t
};9 h+ q: ^; }  J- ~6 P6 A! d3 T
5 K4 L7 E7 O# Y) D. ^! p
static int __init led_platform_init(void)
) P6 o' Z5 K- j- [; a{; ~# r/ Z8 {0 p1 e
        int ret;5 s  }2 e* s3 g8 ?
#if 05 b4 a# B& U7 A3 b, i2 f
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
  X$ _# y4 F) j8 E4 V6 F1 P6 [3 |        if (ret)7 F/ E: U" {, L% y, V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( s$ D! q# Y6 g' A7 p$ q
                                "%d\n", ret);
5 x7 [$ h: X$ c4 Z5 H$ x#endif9 e5 w) ?5 D8 U! S6 V
        ret = platform_device_register(&da850_evm_tl_leds_device);
% A2 O/ c& i. W1 I/ Q# e' b5 ~        if (ret)
5 V& E( C! p( [                pr_warning("Could not register som GPIO expander LEDS");
7 ~8 K! X0 P/ C( T/ v7 o- }- C        else
6 \: D6 S5 c- n$ t                printk(KERN_INFO "LED register sucessful!\n");
6 r4 c( Z" U: W4 C$ E: s& n  x# }! D, y. g/ x
        return ret;$ W( e0 z) [7 c, [
}
/ l" }6 D1 N: D+ z+ ?0 b
) i  \9 e+ ~  s: Ostatic void __exit led_platform_exit(void)1 r) e% q4 G8 }
{
& e1 P! t2 N' j        platform_device_unregister(&da850_evm_tl_leds_device);
, }4 y. l- U' ?  f: E+ T( E* h( b- _0 J6 v1 y+ W4 f4 z% o
        printk(KERN_INFO "LED unregister!\n");
/ e+ N' C. M7 R}% f+ J' Y. y, X1 U6 M- t

6 _% ~. D; a6 `module_init(led_platform_init);
$ o9 p1 v% n% c* hmodule_exit(led_platform_exit);, k2 W. h9 G2 S% c/ e: j! W- ^
0 X8 j5 n" e1 T
MODULE_DESCRIPTION("Led platform driver");
8 y' d; Z: {, l+ IMODULE_AUTHOR("Tronlong");
; q; P2 w! V0 `- j9 N/ b5 _MODULE_LICENSE("GPL");9 j: B2 f+ Z/ f- B2 v% Q0 r/ Z3 K: n5 Y

1 \4 a* N. g# T" `5 k% Q( N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-20 15:34 , Processed in 0.041571 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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