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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 \) y6 F3 m/ R! [: f#include <linux/init.h>( O" u: ?4 T$ \: t+ i
#include <linux/module.h>( k$ l, `  I( V6 F" q
#include <linux/kernel.h>) L! K! g+ {+ u4 R. F. z  W7 d
#include <linux/types.h>1 b7 b- P3 a8 A9 [1 i, _
#include <linux/gpio.h>
$ }% G! a" u4 d8 t6 w' i#include <linux/leds.h>' ~$ Z$ g3 b9 @! P3 ]8 N! W( N8 X
#include <linux/platform_device.h>2 Q  Y5 e- U8 T$ @4 k
7 i& C( e0 H7 }: T% q1 @) D
#include <asm/mach-types.h>3 {! ]# U9 k9 n! d: B! U* f9 |
#include <asm/mach/arch.h>
; U: Y; F9 q/ O4 S+ b! I#include <mach/da8xx.h>4 V! e; i- U1 H
#include <mach/mux.h>
( h1 W, k9 F! t* W( ~6 `& N. ]/ W& D" v- Q9 I/ v( k) A
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 @. D+ m  B4 F& {6 M
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) x0 p" p2 X8 Y* s9 H$ f+ }, ^+ v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). m# x7 M- u0 i9 J  |% p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% ]0 @; L, l" T! F% e. L
: c3 c( Q& _; ]% `* Y! K# R& Z
/* assign the tl som board LED-GPIOs*/! k# U* ]' p' \4 k' `: x8 }
static const short da850_evm_tl_user_led_pins[] = {
: U$ w+ ?8 T4 i) l# Y% _" P        /* These pins are definition at <mach/mux.h> file */
( ^+ V7 j+ u- V' i7 M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 g6 W5 b  t0 h/ S# S& D. P
        -1
6 Y' }! x3 e& S% Z! Y( f% s};: d! D( L! y5 S7 _) {/ e
! R5 c1 x: w- E6 n
static struct gpio_led da850_evm_tl_leds[] = {; K9 x7 |* Y  {6 ?8 o5 z
        {% s" s* n( b) M8 A
                .active_low = 0,
- v( y2 d& \0 F! u& j                .gpio = DA850_USER_LED0,5 ^5 X$ d& ]) H" A
                .name = "user_led0",5 A3 q2 D: s9 u% D! r
                .default_trigger = "default-on",8 h; G* k. R: Z% \4 g& K" O
        },8 D- d+ o" Q4 P& A
        {
" y3 g# A7 X9 t; |" w5 X7 X                .active_low = 0,* D, ]! L# O7 d! L5 ~
                .gpio = DA850_USER_LED1,: l: f" @/ r4 W8 a) y; o
                .name = "user_led1",
: S6 s8 l8 C1 ]6 m* Q! ]                .default_trigger = "default-on",
+ d% Q) P. J5 @+ I. I" x$ ^# N# Z        },& z2 ^% g* n. v5 g) ?
        {: m$ N4 N9 A- p; s- T
                .active_low = 0,
: _3 q- X# w2 O* a: v$ A. \                .gpio = DA850_USER_LED2,
, l& d& k# Q) J$ r, @  s                .name = "user_led2",1 n) S0 N, H( C
                .default_trigger = "default-on",! j: h3 ~) F3 u8 ]( Y) Y7 ~
        },' d0 \0 g; J# ~" W/ I
        {) S/ P0 F; h/ }, b  l8 w1 G  Q
                .active_low = 0,
( b# G. [" f0 U% n" J! ]                .gpio = DA850_USER_LED3,. a/ c! V! S% g, e" I( q9 |
                .name = "user_led3",, k2 x3 g1 W8 S# O- Z& `6 S; n5 ^% j
                .default_trigger = "default-on",( G$ ~2 j" B7 P4 W3 [) M) v
        },: ?; L1 s1 F4 s4 L3 `+ `
};: `7 u6 p* r. d# I7 n5 {4 z* \
/ S; O* K3 P8 I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; s8 V+ b4 s! w2 t) R/ Z        .leds = da850_evm_tl_leds,
+ R! t9 A& h  C0 L! P' ^        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 ~& O  I% Q/ _};
/ w3 Z; V: F# G% b& n% _! j* A+ e8 E# i9 r+ f. S1 p
static void led_dev_release(struct device *dev)
+ w. j0 W" O! q& }{; V* F. D7 x$ y  _2 \! r& g
};$ J1 ~3 X$ N; R8 v9 G2 }
. B- G9 d" \1 y  U3 C% k5 O! Q5 E& Y: E
static struct platform_device da850_evm_tl_leds_device = {3 r5 I" L& {0 n  l5 o( k) K" O. T
        .name                = "leds-gpio",7 W3 ^* x3 c5 K1 ^: m" A
        .id                = 1,
  L  |; }, y: d) ~& P% ]        .dev = {2 A& j( p7 @, h% d  x  R2 Q* K) n9 T
                .platform_data = &da850_evm_tl_leds_pdata,) V4 N! m2 i1 F+ R; j
                .release = led_dev_release,
  w; y7 ?( P5 p6 h( `: L        }
/ v1 l. d! q! Q4 {};2 K2 O1 n4 K; m& r) I! _7 o- S5 A
/ T, q/ x3 D3 ~- S& h3 Y
static int __init led_platform_init(void)5 T# @* T0 B' X9 G' G
{
$ }- B" I, b/ f        int ret;
9 O% e; G4 Q2 n1 n#if 07 N" L' G+ D8 Z7 k& k% H1 N3 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);8 J& M* _  B6 |+ ?
        if (ret)
, T5 T% Y  h+ l2 s5 w, Z                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& ~6 D0 v8 [, T. G3 N5 n
                                "%d\n", ret);
( c  |+ h' P6 v' ~) p) \#endif
: W3 S1 |# H0 s% t: E1 l, k        ret = platform_device_register(&da850_evm_tl_leds_device);
. q6 }( n" T2 |8 M' `        if (ret)$ f( n% S. }; ?3 {$ O* ?
                pr_warning("Could not register som GPIO expander LEDS");
& e# a* v- v+ Z: ?        else' @* v2 \/ I' X3 `. }$ X7 n
                printk(KERN_INFO "LED register sucessful!\n");6 C% ]7 Q0 S: c

4 }, W4 `( r( j7 \: h        return ret;
& Q! F* B: n* `( y. T# J}
5 ^8 B* |' s* J
7 T; }5 z, f1 `static void __exit led_platform_exit(void)
: Z% F0 Y' q8 F/ ^  E" h" E1 q( F$ x) j{  J( g! W$ a# b' _0 w# h3 W
        platform_device_unregister(&da850_evm_tl_leds_device);
, I, \+ i! s6 Z/ }( M0 o  U( s& Z$ \9 _, K: L
        printk(KERN_INFO "LED unregister!\n");
2 n% M* ?. S6 P3 T}& m/ e1 n" W! c+ O

7 m4 E6 `7 x4 i6 i  Cmodule_init(led_platform_init);
1 f( P8 T, d1 Q/ Z6 E& W; vmodule_exit(led_platform_exit);" t. Q2 x  z! y7 X! b( A! U
* h# o7 t: c- K  a( l( P& R
MODULE_DESCRIPTION("Led platform driver");2 C# j7 b9 L: k: t8 @
MODULE_AUTHOR("Tronlong");: k/ I: U) p7 c9 {% m; k* G! C4 W
MODULE_LICENSE("GPL");
! \7 Y8 g% [* p# U1 e) C
0 V1 C5 R7 |* Q) @* L* a. u, y5 o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 07:38 , Processed in 0.040434 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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