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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- e% T* R, x0 A% z+ F4 e#include <linux/init.h>. ^  J, g9 `1 e
#include <linux/module.h>$ C3 g* I; m/ `: {; B
#include <linux/kernel.h>/ U" E8 _3 r) z0 U8 x' a; h. t
#include <linux/types.h>
* @/ v; r, |& q! N, I; B#include <linux/gpio.h>& v" S# r" N3 M) O- e2 K" F% F
#include <linux/leds.h>
" \) V% J  P- q7 k) f- y' p9 V#include <linux/platform_device.h>
4 C6 g$ l; b% M( s; O+ p6 _; ]9 k/ u8 \; H' H
#include <asm/mach-types.h>
$ |9 J" u$ T* S/ r+ ~6 K3 g  i#include <asm/mach/arch.h>2 Q8 i# s+ L% n. x7 g3 V1 Y3 n; K
#include <mach/da8xx.h>' u! H6 M! O  [9 [0 q4 E) ^
#include <mach/mux.h>& |6 k, i& ]- i3 h- T
2 K: G7 k! o( }4 [% T) r' h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' T6 l  `5 a2 K* k% c' Q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% v( @# n% S  @3 Z/ `+ G) p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
2 j- V: I% ^+ d: W$ |. e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 ]: i8 h- l8 H4 t6 J7 r# K" W9 ]0 @/ c4 E3 r$ T* y
/* assign the tl som board LED-GPIOs*/
+ ~% P, X0 o2 D; a$ Qstatic const short da850_evm_tl_user_led_pins[] = {
6 b0 j  ?$ d$ |  b7 {4 [        /* These pins are definition at <mach/mux.h> file */
: f  R6 c0 [+ i! J6 q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; m0 Q) l. m' T% ~2 _$ {5 q        -1/ O# L6 \4 D) i
};
# p6 U. I; O3 w
4 |" j( N5 u7 y8 T. k2 Gstatic struct gpio_led da850_evm_tl_leds[] = {
$ f! E$ [3 c" x: i        {/ M3 S; n6 _! C, x7 F; S5 I
                .active_low = 0,
+ U5 E) h3 [- f/ U8 D                .gpio = DA850_USER_LED0,- A4 e1 P. F% [2 C  h
                .name = "user_led0",+ h) Y6 q) F, ^: i
                .default_trigger = "default-on",9 _8 I4 ^6 d4 L, |% G3 q: e9 a' K
        },) f, [  s; S3 w* Q" s* S7 Y7 U+ }
        {7 F" G& L3 S* V
                .active_low = 0,7 `5 S/ \. N6 L
                .gpio = DA850_USER_LED1,
0 [; \" R( X7 p9 @/ |  z8 f                .name = "user_led1"," ?/ K3 j7 I! Y( u- M+ s  Y
                .default_trigger = "default-on",
/ B1 D9 T& X' }" G& ?- h8 Z        },
- |7 f2 |0 ~, A$ a4 F        {* A' V+ V# p1 B" d
                .active_low = 0,
- T( f# S9 \* ~# ~                .gpio = DA850_USER_LED2,
7 {& P7 |9 E$ Q% J: K8 s* E8 T                .name = "user_led2",
1 I6 S0 V% y0 G9 O% n                .default_trigger = "default-on",
( a! j: c( Z& Y, i5 t7 s' T+ \        },- n/ a4 Z) b+ p" D/ t/ D4 f  b6 h
        {4 S1 A8 @3 m$ K) A+ K, X, n+ }0 W
                .active_low = 0,
) A! p* a7 C! _' a                .gpio = DA850_USER_LED3,+ `$ c% a: j3 ^* ^3 N* t
                .name = "user_led3",+ R, x5 r6 K$ [$ O' _7 ?
                .default_trigger = "default-on",* N7 N5 i0 R1 z- t/ e
        },
. Q/ e- E2 }$ @) Y- |+ S};$ `7 X: S7 }! @1 c1 f
- G) Q  _& Y) w- |% k- J3 R; o+ V% v
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
$ S+ O% Q' J8 Q5 m        .leds = da850_evm_tl_leds,
5 X, N* o0 N, _: \# t4 O$ |8 m7 y( g        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( O9 y/ h* S% J+ q9 c+ ?# f  }* W
};( w8 M+ |' x# F2 O) q! O/ a; q
6 @' f9 y+ Y: T! j9 Q( \7 d8 B
static void led_dev_release(struct device *dev)
$ }9 a( U1 R/ X: R$ Z7 {- M( @{" ]! ?, O. A( @2 E4 F
};
9 f, C, B1 r  h; c4 H; y' E' r4 ~$ ]
static struct platform_device da850_evm_tl_leds_device = {
0 C3 D% R% o% Q        .name                = "leds-gpio",
7 j7 Q5 ~% [* Z: [9 ^* o        .id                = 1,' f: }- D1 ^' }  r# b& ~. f
        .dev = {
4 R( F" {  x/ _) H, F/ ?( b" ]& z                .platform_data = &da850_evm_tl_leds_pdata,) S0 G( A9 F) J! i' K7 }% ]
                .release = led_dev_release,
+ b; P! L# E3 q2 \; @, d        }
4 _2 K6 c. R: a& F6 _0 x+ M. C. R};# D: j; ]1 [7 G2 v& R3 x% ?
4 d; ]% ^3 d4 M7 T. E
static int __init led_platform_init(void)+ ^6 v% m' u. H
{9 L! q7 T# b, K2 W  w/ ~
        int ret;& H1 Z, |. e+ q0 t5 W7 l  n
#if 0
1 o$ g$ b& o" T# J2 G1 \+ ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. ~* \4 b4 X2 X0 q# p. H
        if (ret)
0 q2 T' ^- ?* ?: ?, \- g% W; v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"4 g7 W; c3 ~+ C2 N; z9 h
                                "%d\n", ret);7 G& [4 Y0 y; o4 |% u8 Y
#endif' T# D# D, a* f
        ret = platform_device_register(&da850_evm_tl_leds_device);
; d9 x& n" s7 y8 n+ X        if (ret)
( i. T8 O; w. ~# P& ^7 ?1 C                pr_warning("Could not register som GPIO expander LEDS");( Y8 Y) I1 x% I) m3 i/ J
        else
5 m/ }- q( u' c1 U8 M/ O                printk(KERN_INFO "LED register sucessful!\n");
% x7 ~7 |+ I- Q# f
: J3 W) T0 I# h. z/ |& T        return ret;
' a9 K6 L  U% @9 n4 R}
( y" e- t: X5 t& Q+ p( ^- o
' P# r8 V5 A! i$ \* C2 kstatic void __exit led_platform_exit(void)/ o9 c5 q/ Y# m6 _
{
3 {# o' N: D6 O! V5 l        platform_device_unregister(&da850_evm_tl_leds_device);
; f$ {& S2 ?; \8 `' r0 g: B! L* x; C7 ]
        printk(KERN_INFO "LED unregister!\n");' u9 X; X8 h. g% H6 C3 J
}# |0 Z0 r$ e% R& V+ G9 i4 ^0 p; E: I

- Y2 S7 [* v% Y: I  u; Qmodule_init(led_platform_init);, ~# H9 C( ]( F5 ]) G' A( G  z. o+ c- ?
module_exit(led_platform_exit);
! n( n6 {3 N& Q# F$ V9 I7 N2 M2 k% S' z+ b( [' U' p3 N
MODULE_DESCRIPTION("Led platform driver");
* q  Z: V% T6 d( q1 _6 I1 QMODULE_AUTHOR("Tronlong");
- o6 q) S  Z( {2 g) DMODULE_LICENSE("GPL");  T& S6 I) c( O# J% u

  h/ u0 o" p% @0 |4 B2 `! b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 18:27 , Processed in 0.042761 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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