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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. M6 A% C2 X9 V4 n' S  L
#include <linux/init.h>
3 m9 d2 \( j$ {  m! n( O#include <linux/module.h>9 w% O" J6 O& Y
#include <linux/kernel.h>
# a" Q: {+ j. F- j8 p4 E#include <linux/types.h>
5 h  S* H+ g" A! k0 D0 I, m; \( f( [#include <linux/gpio.h>* W' g) M4 P; p- h! F- @
#include <linux/leds.h>
4 A% Y: n3 y, {" V) \3 j#include <linux/platform_device.h>' x' n; z" T% |

8 W% f0 {) e# A#include <asm/mach-types.h>
) v5 W+ n0 y) \2 L3 x#include <asm/mach/arch.h>
+ ^1 M- j1 L+ Z#include <mach/da8xx.h>
" B' t/ R! G* Q$ x6 j/ c9 k/ r8 E$ {#include <mach/mux.h>! j, x' y7 h4 b  `0 y

0 O1 o9 i- H: T0 N9 Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* `! O% w+ N! H: h& a3 E8 F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 R) _1 T. D( k8 O& P8 s' Q#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
  G3 O( y  R: h0 g#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 [" m1 ^) b2 f5 U: p" x

, d! I( u1 L6 _' j: n! _$ C/* assign the tl som board LED-GPIOs*/
0 a  [- g# S8 J6 Wstatic const short da850_evm_tl_user_led_pins[] = {
% w% ?9 K% u6 F6 {8 _9 k        /* These pins are definition at <mach/mux.h> file */7 \2 D$ P- e8 G$ u" U
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 Y9 R, b, v/ I
        -1/ K& y& x! J7 ~- c1 x
};
$ x( ]* }% Q' B3 L1 h9 W2 I3 T0 y4 i1 H8 O4 ~5 ]) v) ^
static struct gpio_led da850_evm_tl_leds[] = {
+ T/ u; f" h% x6 H$ F& Y3 W) ^        {" m5 T& b+ E; c. a; t* D# q7 e
                .active_low = 0,! t1 {0 E) x& z+ n
                .gpio = DA850_USER_LED0,
( I6 e  z. ^- g) x2 i                .name = "user_led0",
# S% e7 O: u& a; z- G& i! y( o                .default_trigger = "default-on",) b& c; ?: w. V, h5 a# z
        },
1 |5 P4 `3 r$ v1 ?8 i( u  x        {
0 }- j$ A# Z4 B8 q+ l# z9 _- c4 H( G                .active_low = 0,
# ~* r7 w+ ^8 e, P4 B" \" T+ X                .gpio = DA850_USER_LED1,8 j* d! z8 H6 A' J$ @8 A" i# X8 O
                .name = "user_led1",; D8 L' [9 `, U
                .default_trigger = "default-on",; T* s/ y0 P, O& o0 p: L/ |. u9 G/ V
        }," ]0 z# Z7 k( y, K! x3 P
        {
) R4 C* o9 a* p: u: [                .active_low = 0,
! r4 D$ e3 @, Y                .gpio = DA850_USER_LED2,& U: {5 V  w; ]
                .name = "user_led2",  P# l% f  r( ]
                .default_trigger = "default-on",& {5 w8 I# h# P- `0 ]
        },
2 N' h/ K) v9 L: T+ m0 m$ s2 [4 H9 R3 \        {4 F/ Y. d% D4 Z" T3 d5 m0 v+ g
                .active_low = 0,( O6 j4 T& E7 u! J' P/ q% _: C$ p
                .gpio = DA850_USER_LED3,$ |+ f- J9 \9 k5 h/ U8 h) O& O" M$ c
                .name = "user_led3",
* G5 e( Y3 L% E# Z6 g                .default_trigger = "default-on",
* V- e, L! g( v6 c        },
# `8 L4 A5 b8 u: {};# N+ f3 t* S% h6 \

3 T2 G- R4 J( w* B! k  G1 Ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 Z# o' h0 M* y) I
        .leds = da850_evm_tl_leds,
9 N- A9 H) [8 I% y  y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds)," U& I! y1 b) \: z
};
/ W+ g: S- n4 o% W0 C8 N& i0 G/ v) Z
static void led_dev_release(struct device *dev)6 V: ?* s4 w3 Q4 o
{
$ B; ]4 h3 Y" _  F% D+ D7 x& ]( W  p- z};
7 a7 z9 Y* P& e0 c& Z3 E8 i! b+ Z& x4 d! i8 }. r( Q
static struct platform_device da850_evm_tl_leds_device = {
! L, h3 n. R+ j$ R$ K        .name                = "leds-gpio",  h2 G/ K) G$ g: z; z( X
        .id                = 1,, S# z; ~! S. O4 \4 f' G. N2 R9 ]
        .dev = {
6 r% H; |! _; v- |- E* z                .platform_data = &da850_evm_tl_leds_pdata,
% d9 [# ~/ L3 y* G6 V% G' \) d                .release = led_dev_release,
" f" @1 H+ I2 t0 r8 o        }' w3 I) K% |2 Y' C, Z" a; n
};
& }6 e4 N* [8 v: ^! t3 ]- _
2 I: `( S$ E# V% H- g/ [static int __init led_platform_init(void)+ E$ ^$ c8 i3 d' m
{: x$ E# E1 ?% i: V, @; K
        int ret;
' c7 L/ L: [4 l; Y1 g! w#if 0& o$ g, @) [  m! z% w. O: B! y- e/ c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. v" W$ r) B8 n* v. d" k& l        if (ret)1 p! ^7 l( f; u9 t
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% r( f* Q, q+ D& `: Q( J7 X                                "%d\n", ret);: L3 s. @) [0 U  x, L7 ?0 c
#endif
/ R! V2 V, b; r4 ~0 _( V& H        ret = platform_device_register(&da850_evm_tl_leds_device);
8 m: u: b4 x0 ]0 M# ]+ U; y        if (ret)2 t) M" p6 D0 G& i3 P5 n
                pr_warning("Could not register som GPIO expander LEDS");# T& o- G! ~9 X& O2 m% R1 I  n
        else1 X' d+ [, x1 Y* s2 d! H$ K$ z
                printk(KERN_INFO "LED register sucessful!\n");
6 v% T- Y) {9 ~2 b+ P5 h5 Y# H4 t. }. T" m4 U* e) r0 P' h
        return ret;5 i$ L: D% k7 n! g! B( e
}
4 K) b* @( y5 c; f
/ z  V" m, V( X7 l( E/ Vstatic void __exit led_platform_exit(void)
4 F+ I2 k& u, l6 W{
, e! Z$ e  `4 _3 f/ B- ^7 W4 E        platform_device_unregister(&da850_evm_tl_leds_device);
2 Q! L* R$ y/ R% n$ |) Y* p
( {! U8 H9 _; ~7 ^. |- E5 W( l        printk(KERN_INFO "LED unregister!\n");
" R7 w4 e6 Z/ j, c}. {5 R3 U; ~2 s. x/ K2 x2 f
! V7 S, ^8 Z3 m
module_init(led_platform_init);4 d( V; V  T& a/ ^
module_exit(led_platform_exit);$ B: y9 `" ^: L1 {9 p
' W4 `0 ]$ H0 g
MODULE_DESCRIPTION("Led platform driver");: y) w- l9 R0 J8 q6 H6 t" D# j
MODULE_AUTHOR("Tronlong");
# e& C% \( b# k9 g( y) z5 S  OMODULE_LICENSE("GPL");
& O0 N4 D. G& A- ^" N! W, {/ @. Q; `( h1 z  ?# d0 b5 p* E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 05:37 , Processed in 0.038192 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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