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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 i4 J5 g" t4 g: V/ ~* q) |#include <linux/init.h>- i' f& l  B! \% S2 k% c3 J
#include <linux/module.h>7 \5 L' W9 ]1 u7 _6 f4 N" Y. A
#include <linux/kernel.h>; ^: a3 Z: K/ P
#include <linux/types.h>) Z6 S1 `- L) S' H5 k' r! U9 E4 X" I
#include <linux/gpio.h>9 Z+ E- l1 C: n$ C9 W& q7 }
#include <linux/leds.h>1 ~0 T6 p5 L' Z& m( w7 Q) K! D" r
#include <linux/platform_device.h>0 b1 ?0 g5 _% i/ G' h
/ |% d6 \: o* Y3 v
#include <asm/mach-types.h>
8 n( ?. k4 M2 S+ v" R9 \, u- v#include <asm/mach/arch.h>
5 Z/ C2 A, w8 F9 J) I6 b% p#include <mach/da8xx.h>0 K1 x  O, [4 W; l
#include <mach/mux.h>; K, ?9 N! ^# N2 J

5 l. K7 u* R6 d7 I* C#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! P; F7 y, F$ ~4 g#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ U2 W9 `  j4 Y6 _
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
7 h7 l3 z) r  O# c) g; t$ _& C! L#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
" W; \% y# m- i
, p  W7 P  W# v/* assign the tl som board LED-GPIOs*/
/ A# B/ R) `7 z4 `- \' P7 S4 Y. ?static const short da850_evm_tl_user_led_pins[] = {( g: k8 i- w' z1 z7 H
        /* These pins are definition at <mach/mux.h> file */
8 d3 z  u( V) Z+ B$ k( S        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 K# Y$ m7 f. E$ k) G
        -15 a& b7 B5 B& R" M, {9 H6 I" r% m
};8 v/ ^1 L9 O1 `9 E6 b5 ?9 o

( t. p1 s! S$ W+ o8 A% n  @9 Cstatic struct gpio_led da850_evm_tl_leds[] = {
" }( ^9 o/ T" ^# F/ C& Y5 X        {
% Z4 b4 }/ i" D( i                .active_low = 0,
- U% l. D0 R. g5 r% c2 \                .gpio = DA850_USER_LED0,( P  \/ B) U; F! e. [
                .name = "user_led0",  u# D5 z' f! C- O9 z; w
                .default_trigger = "default-on",
9 E' y/ u3 g8 F# I: M5 t8 s$ v8 I        },
% ~! a7 Y: s$ T+ p        {) J, a) B4 s, x& O
                .active_low = 0,
7 {* }( J( n0 `) ^1 I$ U8 q- I                .gpio = DA850_USER_LED1,9 _7 c: L; M0 }
                .name = "user_led1"," U8 K& F: C+ R: F* M3 V
                .default_trigger = "default-on",- w- _! a  V3 r2 a
        },6 M* d) B: ^4 u* \7 D
        {
4 C; v* U: Z, F' s                .active_low = 0,' ~9 n+ L! ?- f: |7 T6 s9 {& k, D
                .gpio = DA850_USER_LED2,8 x7 S! }% H+ F  ?. J
                .name = "user_led2",' J+ K1 ]4 o. Q0 P+ j' }, k1 \
                .default_trigger = "default-on",
  j- q6 G, O( ?" A) ~7 W        },) ]: R( K/ n! S
        {
$ m  O9 U& c7 {+ e8 {. ?                .active_low = 0,! {) A* {; ]& m$ k* }( b  Z+ U
                .gpio = DA850_USER_LED3,$ N" {! A2 L6 V  b4 _9 }
                .name = "user_led3",. p1 o8 o  u. i6 a4 |. p
                .default_trigger = "default-on",. q, Y! |0 b& `5 H
        },6 f8 b8 N$ E7 m2 c& @# B
};$ ?) m3 s( E  Q* k
/ ^9 e8 c: l3 f4 {
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 Y0 D7 a; U: [+ ~2 x0 K1 X0 }6 ~( O0 b
        .leds = da850_evm_tl_leds,
" x; s; U- {9 o4 h0 G+ E        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
; X, t) c! |3 s1 o. Z) @};- b( m5 {0 R& j" L$ t2 r

+ x  c8 v! z2 f0 ~5 f  ystatic void led_dev_release(struct device *dev)
  q& Y. B' x/ Z  g{- h. G* u1 C! J5 h* Z+ s
};9 a" }! C9 z* q  p, O2 k% \4 }
( Z9 H, q. `4 }& |
static struct platform_device da850_evm_tl_leds_device = {* t9 G: ]# n" S# ]  E
        .name                = "leds-gpio",7 J# v4 C' J2 B9 h
        .id                = 1,) Q+ o5 x" B! K$ J  C
        .dev = {
. n. ~" ?; p- s                .platform_data = &da850_evm_tl_leds_pdata,
3 l; Y, L6 Z+ H7 l! \7 V                .release = led_dev_release,& ^+ m2 w7 `( X: B
        }
( e) Y$ T' R0 @' f2 z+ c6 V- h};- Y/ p  ^6 ^/ a* _

3 q$ o& x" E8 n& A1 t3 F" vstatic int __init led_platform_init(void)
, G. f0 F! T5 Q: [{
0 S- l4 J+ c1 G8 o6 D; R# m0 F        int ret;! C5 E& ]3 k  h( y! H' \) y
#if 0
, L; Z- a8 c8 f- `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. [; E" N9 j7 u  O        if (ret)! [* x' c0 b3 O2 W9 W# S$ Y, Q$ i
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' ^5 ^8 ?6 ^9 S/ k, R& s                                "%d\n", ret);" Z5 E5 ]" Z) B
#endif
$ y+ Z( c2 g; U. i* [        ret = platform_device_register(&da850_evm_tl_leds_device);
( ]. j  r. o' q! u0 G; T+ a. I        if (ret)9 g% q4 o: M: k# M1 ^
                pr_warning("Could not register som GPIO expander LEDS");) {4 R+ g: B6 u9 M* |' M
        else
9 P2 J! t3 E2 l5 k2 A+ Q                printk(KERN_INFO "LED register sucessful!\n");
1 h3 p  q/ B" g. T1 F- b( {, e' a0 ~
        return ret;9 R! [6 b5 {! m% V5 W! R' h' @
}2 Q& l: _7 V* }8 P/ h, E! O4 n
9 i; q/ E3 B% o4 L7 ]
static void __exit led_platform_exit(void)
' _6 K0 b* v& n! S{
/ i* k; [' q; ^. K# F: G        platform_device_unregister(&da850_evm_tl_leds_device);
0 Q" |" N# e& I: @6 r, z
& I* |3 W1 S) W( q8 }+ t        printk(KERN_INFO "LED unregister!\n");
) K7 q! ~( Z3 i2 b6 c7 c% \}
: O3 H/ t$ @' P+ p! }+ i+ A+ q) W' t6 ?: M+ M; s/ L
module_init(led_platform_init);. |; L$ I0 G! X
module_exit(led_platform_exit);+ }( [6 S) Q  b1 t  s* W# i
( c( ^$ c4 I; s3 h6 n
MODULE_DESCRIPTION("Led platform driver");& A. `. Y5 m2 e5 _* E# S% E# f
MODULE_AUTHOR("Tronlong");# r9 p, j% y3 ?/ j$ i5 Z. T" ?
MODULE_LICENSE("GPL");: l1 c- p8 A7 V
$ A# V1 d6 y5 y8 {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-28 17:44 , Processed in 0.046519 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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