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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& ~1 L; n( |# ?9 Q* K#include <linux/init.h>
5 H% m; [# `/ u1 q#include <linux/module.h>1 {6 h) a6 _: ~9 l! n. E
#include <linux/kernel.h>  ~5 \" z/ E, {6 v( n( S3 I
#include <linux/types.h>
9 h& f" X/ i# c: N+ j#include <linux/gpio.h>
* _' Z4 \. i% P9 h4 B#include <linux/leds.h>
3 i. U1 W9 o, U$ {1 R, @' r. ~  ]; a$ H7 s#include <linux/platform_device.h>- t7 j: h+ x4 S% M, h9 A
' h% o' E/ ^: o' y6 q$ e7 R
#include <asm/mach-types.h>
7 v6 `6 X! H" X5 [! F" j#include <asm/mach/arch.h>
3 g. ^+ `3 Q, O" L9 Z#include <mach/da8xx.h>
, o6 N: q$ E! X6 {#include <mach/mux.h>: R( i# M# w9 A8 j7 @
' _: m% r" N6 H: a) X3 C$ Y
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)( h# Q7 e& n& K7 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: S  Y, B. l, ^% Q' B#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 u9 }# h( `( p0 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& l: }# s9 S' }! i& K' M% ~) x
- }0 `8 ?( K0 i& I: b/* assign the tl som board LED-GPIOs*/
" M7 `* a1 [$ S! @3 G0 astatic const short da850_evm_tl_user_led_pins[] = {
: W$ G1 L0 m8 s. P  m6 B, y. j4 \        /* These pins are definition at <mach/mux.h> file */& m4 p9 S9 s+ n
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: M0 q, Z  q1 o) B! ^        -1# I% w& B0 d# i& O* u) T' }
};
) a7 D0 k. x  [. x  [: J
* g9 l: T8 @# r/ K# H- Fstatic struct gpio_led da850_evm_tl_leds[] = {1 N  H: n. k0 s. \: q
        {
! E1 W+ i1 X4 Z1 o/ c6 x" z& l! w: z                .active_low = 0,
$ H. y* l; `, _* r9 a. S                .gpio = DA850_USER_LED0,
5 o% a  r( i. r4 d, W" `                .name = "user_led0",
9 K: d* x3 b3 C+ f( q2 z8 _; x                .default_trigger = "default-on",
. k+ l5 }9 D% j6 Q" U9 S: p7 @        },' X3 p) p) x2 T' g; k( \" u* r
        {) R8 G' e+ [+ z- c- w. x: Z
                .active_low = 0,  J# H/ ^  c' E
                .gpio = DA850_USER_LED1,- |$ q+ b' n1 `9 N: ]$ B
                .name = "user_led1",1 X& @: W: ?0 ~% b! W
                .default_trigger = "default-on",
  Y  J( V8 U. [' s7 d5 I- R3 r2 ~        },4 B/ v5 Y/ h; g4 j6 r
        {
; m+ d3 @5 }( j% y7 R! a                .active_low = 0,2 H6 Q, \6 L5 n
                .gpio = DA850_USER_LED2,4 r% f( Z- w3 n& K4 D, W. n7 J
                .name = "user_led2",
) d" b3 l7 S  H3 R                .default_trigger = "default-on",# Y; p9 @* R% T
        },
, _* Y' N; x$ a& @        {
# R+ q& Q$ N: `8 c' z% j7 l                .active_low = 0,
. X; e$ a! O, V" F' O: r4 S                .gpio = DA850_USER_LED3,
" ~9 ]# D( @* C" f: ^                .name = "user_led3",
2 b( ?: v0 T- |+ p# g8 W% e! H                .default_trigger = "default-on",
( T: z+ {+ e- Y2 K        },( ~/ n$ i8 B% E( T, Z) D: e7 u
};" w5 U& t1 d5 z: ?* q: g( H) _% K# }
7 w0 l) o$ U8 v, A9 t8 D+ V  Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* r2 C% C# E! ^6 V6 ?% S
        .leds = da850_evm_tl_leds,! d+ k. B3 q# S- A2 N
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ r- p8 G' v6 i+ y
};
7 c( ]- s, M# _: d/ A
2 H5 D- ?$ @9 z# }9 zstatic void led_dev_release(struct device *dev)* F, E. r2 `% p, w, [5 K' L
{
+ b- b4 u" t  M};
( z6 O, p: n0 G) Y8 O+ H
4 Y+ L) V9 ~" D5 p  d) @static struct platform_device da850_evm_tl_leds_device = {
$ ^# G0 j& q5 |! Q) C$ }4 `        .name                = "leds-gpio",
& |* n9 }( _1 Y* a  Z. t  b/ n$ s        .id                = 1,- x# v# K3 F5 L
        .dev = {6 P% m* I5 P& y( b5 ?+ C
                .platform_data = &da850_evm_tl_leds_pdata,. x! @$ g8 n/ U% `+ L$ P6 e1 Z
                .release = led_dev_release,
' g0 Z; u1 o3 |        }- }" E: d  ?6 l$ D! e2 r; X
};
) I% y2 g, ]! u/ F' \) S8 N
, Q8 J8 p( `. M  e4 u. B, Bstatic int __init led_platform_init(void)  i; p, ]. G- Z2 E& t7 u
{
! D# q5 h5 @5 I* I0 X: c        int ret;1 S0 H/ A0 N' h& X$ v- ?/ X
#if 0
& K6 e3 A* g9 C9 B4 N  [        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);( c: D5 o' }6 i1 L. E6 l
        if (ret)
5 a% k; H* B! |2 o3 Q6 F1 o. m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( n/ S# K* X; J; F5 {
                                "%d\n", ret);/ c1 v3 X( ]# R: @
#endif) X& G$ _4 G! L) R9 ], {
        ret = platform_device_register(&da850_evm_tl_leds_device);( |4 k' _8 F! m2 ~" _+ j
        if (ret)
  r9 Y* G* v" a0 k                pr_warning("Could not register som GPIO expander LEDS");# Z3 q. y! y/ ]5 N: e7 J& s/ O
        else
$ K: j, C( r! m4 V                printk(KERN_INFO "LED register sucessful!\n");0 `4 V4 s8 P, c6 }, F* K

2 P, _! h$ E% h8 H' T        return ret;% g$ b) ~( l4 t) F* y9 U
}
2 U# L5 z5 }2 F/ M6 Z- `5 G7 _
% A, A. C$ x. R( U+ O& @static void __exit led_platform_exit(void)% ?- u. i7 o+ X8 U) e2 [
{; l4 x- o5 Z4 w3 n, L$ L2 N( H5 ]
        platform_device_unregister(&da850_evm_tl_leds_device);
# L6 R7 |( b" U" y3 e+ `0 T- Q4 @  |1 U0 G; A5 e9 k, `* H3 ]
        printk(KERN_INFO "LED unregister!\n");
# k6 A  q; _2 k0 n}2 h& ?2 r% f1 |3 Y- n2 j
7 k& @& x9 S6 g" e1 d
module_init(led_platform_init);" J; G: H% I+ {5 y6 G2 ]
module_exit(led_platform_exit);# E& p9 }9 u5 s7 S; V/ @+ x

- t7 m% m( o& o! m0 _MODULE_DESCRIPTION("Led platform driver");4 o. i9 Q) E+ H; L
MODULE_AUTHOR("Tronlong");1 I- R+ O0 u/ n7 p
MODULE_LICENSE("GPL");1 S; c8 W. b' Y9 i. z) e6 A
, g" D( @. P# X  E8 u# b4 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 20:34 , Processed in 0.042564 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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