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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- i% Y8 |! ~* \9 b5 B7 I
#include <linux/init.h>
% Q  H( E3 ~# n. r2 Y2 d#include <linux/module.h>4 ~! b) N6 h  [+ S
#include <linux/kernel.h>
5 s9 ?8 J+ D6 }! P#include <linux/types.h>
& f: N+ s, [9 o8 _#include <linux/gpio.h>
2 e  K1 S- g% x# z9 }#include <linux/leds.h>/ u- N: h0 O# |0 Q+ |! U: f
#include <linux/platform_device.h>
, E3 o% g8 M5 H- Y1 L2 @  L5 k4 Q
8 x( n! p" m& S3 A1 y( D: Q( E#include <asm/mach-types.h>! V" l" F1 {8 h6 F% z7 Y
#include <asm/mach/arch.h>* J; v( w% p. F3 S
#include <mach/da8xx.h>
. d8 P& G" ?. ~) [#include <mach/mux.h>
9 W5 d, h3 V+ p2 A& ^9 N3 H( R) w, u1 @* `6 M# d, Z; L
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
/ C5 ^# e8 U& ]1 P1 _#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" K. A' T4 \+ Z( ?3 b, i* N, e#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 j& \9 @7 S! q+ \; h#define DA850_USER_LED3        GPIO_TO_PIN(0, 2): j' m, i; o) c* K0 U& E! y

1 v9 u* f9 G6 m: R& b/* assign the tl som board LED-GPIOs*/
1 P% @/ h0 X) G( R. i' S3 c, wstatic const short da850_evm_tl_user_led_pins[] = {9 j- P" s2 @1 g
        /* These pins are definition at <mach/mux.h> file */9 D# G+ Y* f$ H0 l) t
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ V  m+ P' W0 x5 v
        -1
& \6 @. ?6 x0 o. v& J};3 V6 K* Z3 l" a% Z6 @1 q. z! C' o
" h" F' a( u5 _) |
static struct gpio_led da850_evm_tl_leds[] = {- z# K9 y" S* m
        {$ k5 W/ }: f9 L
                .active_low = 0,7 M, N/ _( t) h+ e0 n- k  r5 Y
                .gpio = DA850_USER_LED0,! Z$ Q  B" v8 D7 R, D/ A: h
                .name = "user_led0",; G- P, f- m2 g5 p9 u
                .default_trigger = "default-on",
+ f: ^/ z1 G( W& {  h/ h        },
1 I. ~5 L5 \/ h        {" E) _9 [8 H7 C1 h  O" N9 t
                .active_low = 0,
! {9 T6 X- z; e* p! q+ n/ `                .gpio = DA850_USER_LED1,
) W5 O7 a" ]- I# k2 o  ?; k                .name = "user_led1",
7 y4 p. W) z0 i                .default_trigger = "default-on",# q% I% l) V- e, ^8 T& x* i# L
        },
  O" t+ p: r+ Y8 F        {* c( S) a1 n, q. m& `1 e) t2 Y
                .active_low = 0,7 J+ J8 f9 Y8 T# \0 {6 L
                .gpio = DA850_USER_LED2,4 f2 M6 ~0 H$ c- T! T! g) r. d9 p9 Y
                .name = "user_led2",
* C; I8 ^# Y( s2 I- U- U1 |                .default_trigger = "default-on",! \% o) g  ^+ P0 A5 W
        },' R" a7 M6 r" o# F4 u# p! v
        {$ \/ N+ ~; `7 i3 k1 S9 c& L
                .active_low = 0,
; x* Y8 _0 C6 W4 K                .gpio = DA850_USER_LED3,
/ e7 p/ Y: _  k% {                .name = "user_led3",% Y( Z% C" ]6 l
                .default_trigger = "default-on"," c% c  Q8 B; r
        },
% o6 Y1 s  a7 y* r) b2 L* j: A};. r! r0 G' ^& X8 d; Q8 |3 G

( @: L' R+ i; \  V& F% O& xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
) z) ?) y" R. C6 [# `' x        .leds = da850_evm_tl_leds,
4 _9 @( {; B. k4 W        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- m3 n1 m: Z8 B};
. j8 |: q! V1 q! A% @9 v
: p- J6 |/ O6 Astatic void led_dev_release(struct device *dev)
* q+ C4 J9 G$ D4 e! |3 {' m7 {{3 w0 Z# j+ o2 j5 Q
};# Y( W  N' X/ G! w8 l9 J. b; A# y
: A9 k; |2 Q( f# D/ U
static struct platform_device da850_evm_tl_leds_device = {. m+ V! q. X; V' I3 H
        .name                = "leds-gpio",
' O1 c' p( p7 v5 ?- ~        .id                = 1,( n5 {- ^" c8 |/ K8 _* {
        .dev = {
* _3 l7 o2 g, q9 }& s                .platform_data = &da850_evm_tl_leds_pdata,
# _7 K: j7 b& w* ^                .release = led_dev_release,; l5 w4 L' Z: S) }
        }
; Y3 x  L% a' c4 i: D7 Q9 b8 t};
/ p) \5 u+ m! G: H
6 U# j7 B0 E) k$ `: n- P% U" rstatic int __init led_platform_init(void)+ ?& R) g% |- T5 v$ q
{
) {4 Q1 e  A3 H+ N) l        int ret;4 [& ~: h6 y: L
#if 0
+ ~! q: j# \0 a3 |" I        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
& N1 i2 ]0 f  _; r        if (ret)
1 [+ p% m& ^3 o                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
1 r& r* u9 C+ S, y  ~7 j- N  g                                "%d\n", ret);
) [8 v# i  T7 l4 o# v9 K#endif) |+ R3 L/ l$ k# y8 b% W
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 q0 h' K: o2 |* N1 V        if (ret)
+ v0 ~2 V0 V' P& t) z                pr_warning("Could not register som GPIO expander LEDS");3 {1 w$ E. B7 P( J! B. F5 b; N
        else1 _3 Q* e( S5 k; @
                printk(KERN_INFO "LED register sucessful!\n");" j4 H! l  x$ j, J9 R2 @
! c; k7 a2 o6 a! Q7 N
        return ret;0 W9 S) D" C) _; T% N
}
9 m" d! B7 w. y1 `% N4 v# r
) s, Z2 V' w: b# h+ Xstatic void __exit led_platform_exit(void)
1 h& c/ Z  x& a8 t6 D2 P8 G/ |/ ]{
0 }5 |" x$ i% l2 r. n7 l7 o# t        platform_device_unregister(&da850_evm_tl_leds_device);8 O8 d8 J5 V% `# E$ i. \
  z( M# Y- [/ V" c3 E5 h, g' }1 b6 v
        printk(KERN_INFO "LED unregister!\n");3 T+ m, t$ e" O! @% I, F
}
( v' k' N) m, i, B6 Q% g1 v" N0 k: M3 k  O( w( A7 M. D
module_init(led_platform_init);
/ b6 c6 B2 ^/ qmodule_exit(led_platform_exit);: [' @/ [- U. P$ _/ V' e) M; @

. @: I. C4 J8 XMODULE_DESCRIPTION("Led platform driver");
. F$ O7 z, e8 P/ i2 `; y3 v. G# p* F. W( oMODULE_AUTHOR("Tronlong");2 f5 h; F. a/ ~2 u) F
MODULE_LICENSE("GPL");( p: i& M" V7 H; }9 H7 J6 U

4 E3 |) I& ~1 I! w0 z- r& n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-13 20:01 , Processed in 0.037033 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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