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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
  _- ^! K4 T3 h; S4 K# i3 L& ^#include <linux/init.h>% P! w2 z& Y) e) k
#include <linux/module.h>
3 K) O" ~) L/ E: |+ A& a: Z- B#include <linux/kernel.h>; \1 k8 b- N- @% w- m: Y6 @
#include <linux/types.h>
+ Z, I9 t8 M( l$ p#include <linux/gpio.h>4 g0 {0 K1 }2 _2 H
#include <linux/leds.h>
+ ^! Z) n4 d0 m( c#include <linux/platform_device.h>, `4 F. z3 d9 i: K! @$ W
* O5 v! F* g7 P% l& b3 R
#include <asm/mach-types.h>
8 \1 w- j- y; f( |#include <asm/mach/arch.h>4 |1 m* S; @- I* d- Y) Q, c
#include <mach/da8xx.h>5 u7 b3 X7 w) E
#include <mach/mux.h>
4 j. W6 M, i$ F+ S$ A9 p7 L! h9 e% \" E1 s6 Y3 w2 h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ R, y, V8 p) q- }& c- }#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)  @. t0 l6 @2 u
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 j- s1 t2 f2 j; K! g  j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; @( s3 B; O- R
2 v3 K! i$ k1 c- x/* assign the tl som board LED-GPIOs*/) W' u9 r  R; c- N$ N$ H0 W2 L# D
static const short da850_evm_tl_user_led_pins[] = {
  r* D* Q4 k* e% l" g        /* These pins are definition at <mach/mux.h> file */4 }4 c# L2 `9 W6 ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* l, P6 t# |- S# |/ w
        -1! x: n  r% N8 A' ~
};  ^; {* Y( r' b0 @
2 z, W' A  R: |
static struct gpio_led da850_evm_tl_leds[] = {' K5 k; ?" {! |5 P, a) q
        {
( m  j% d- m1 F; K- S' p  R0 }                .active_low = 0,
; [. j6 c! w# [% x# c6 o/ J9 ?  d                .gpio = DA850_USER_LED0,. H4 O, s+ q! L8 l0 W0 C  j
                .name = "user_led0",
! }+ Q8 V0 _0 b) l9 D) y  t. T                .default_trigger = "default-on",
* x- B* h1 z) P! N1 ], E        },  d/ f5 S2 H4 {! {, P
        {& }% P6 I6 Q6 V
                .active_low = 0,9 ~* b/ r2 ]7 G" l" |6 h& C% P
                .gpio = DA850_USER_LED1,3 S% ]( g0 b) o- ~1 _3 p! C
                .name = "user_led1",
$ m: ^! Y% w+ R* f# b  t                .default_trigger = "default-on",7 W5 }& F' w$ E
        },3 w/ j% f+ J8 v5 o% S
        {' E% X( V9 k+ C8 |
                .active_low = 0,# s/ E! S8 N  J( E8 n
                .gpio = DA850_USER_LED2,9 s( U7 b$ W+ k, U& W8 e" F
                .name = "user_led2",, J' l$ T7 i$ U( t1 J* `6 q
                .default_trigger = "default-on",
$ I, v- f( Z; H0 k( ^/ W! q        },
3 n' Q6 a6 a1 }# w! s        {" C- Z- _9 t6 K: p# Z$ H- J5 w( X
                .active_low = 0,
% h* X  F# E$ a9 o                .gpio = DA850_USER_LED3,7 v6 X8 J- t4 h+ y2 a# X: o
                .name = "user_led3",, E4 X3 H2 G& R$ j
                .default_trigger = "default-on",
9 b( R. |; s' L        },
+ }2 f# N, ]& N" p};! g2 s  M9 v% X8 T" ]; ^4 z
0 c% C$ q  s" ^( j; ^7 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {; }$ R$ L; I7 O: g
        .leds = da850_evm_tl_leds,& e! R3 M/ d$ r( i1 V  x6 b
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 D7 }" A& \* @5 R0 y
};
/ L# [! p+ i2 x- T4 H7 B4 f* ?& ?5 g% ^8 p- G7 u' k# h
static void led_dev_release(struct device *dev)2 B' n% m3 m7 v6 i/ X( W
{2 h8 f# s3 I: w* i% v$ n
};
8 p7 X' G* J6 G
# b; c: v" n5 J4 Z+ I7 w. Mstatic struct platform_device da850_evm_tl_leds_device = {; m8 {) [9 {( u5 ]) @% b4 F) i7 u
        .name                = "leds-gpio",2 O# ]! J: Q1 P! p. r
        .id                = 1,/ ]8 C3 {+ x; x" m- p
        .dev = {
  u' z& T. G2 I                .platform_data = &da850_evm_tl_leds_pdata,* [7 @  R4 \  P0 J& A. e& ?- Y+ A
                .release = led_dev_release,
( v: r8 \0 q7 U! y" l# z  s        }
" x' A3 o6 z+ d2 g4 h$ a! d};% E' R! Z( q/ s% O9 F) [0 R- [

# p& l2 {% L% S6 I8 r7 v2 _! rstatic int __init led_platform_init(void)/ q  M9 R+ Y! l: T, r; o: U, V
{" H2 Y" M% A* b/ A2 ]% O
        int ret;! Y6 i: v1 F) ]- u. p" _$ x
#if 09 F  U& }: H  u& o+ ^2 W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# u& ^  J$ H% ^        if (ret)6 Q1 |* N/ e5 u6 U6 Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"$ p+ H6 Q' |4 T  m: i# A9 }
                                "%d\n", ret);
9 {9 O, b4 h3 R) M#endif/ {! |- T4 D! W7 r- r
        ret = platform_device_register(&da850_evm_tl_leds_device);/ f( F) L* D2 j" m
        if (ret)9 U) \: j# x+ }7 k! ?$ |' v/ [$ X
                pr_warning("Could not register som GPIO expander LEDS");% y& C% e: F6 r' }, s9 b  Q+ U
        else
, L& i$ ]6 @2 ]* o- v5 }3 Y                printk(KERN_INFO "LED register sucessful!\n");
3 X1 D/ K5 j; E' w7 ]+ F: x, r" ?. X
        return ret;4 E. h4 F/ f0 w* {5 o
}
5 c0 L# j0 q- [5 p. K/ j/ C/ N1 F/ J5 Q& s, z: q/ V. t% {9 [& r
static void __exit led_platform_exit(void)# d5 n7 Z) W0 m  U* n+ n
{
5 A* _7 q5 j$ ~7 J# h2 m: F2 f- v: j        platform_device_unregister(&da850_evm_tl_leds_device);' ]! Z* a: j9 @% l
/ i; K* W, S; K1 e
        printk(KERN_INFO "LED unregister!\n");1 ~& a" c' `" c' d& x
}) D- D5 l; X2 _+ o) w
8 B& U: P8 x! {# k
module_init(led_platform_init);
4 |2 x4 X, Y& H; Z1 |2 ?module_exit(led_platform_exit);" z+ L0 ~0 Y$ ^: v( D. {+ a) Y
2 U* c1 M4 O) s" ]6 A2 p# z/ w! m$ Z
MODULE_DESCRIPTION("Led platform driver");
/ B4 c" s4 J  V0 }; gMODULE_AUTHOR("Tronlong");
5 a. a2 H5 k2 A3 y. yMODULE_LICENSE("GPL");  X+ p$ {% q& ~- D5 m$ ?7 t6 O

* Z- {0 Q9 g# A: Z/ C: r/ ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-16 08:48 , Processed in 0.037781 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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