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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。3 N8 z5 q6 S* y. I0 U  }
#include <linux/init.h>8 N, q4 P$ T) l- z1 F+ {$ O' u
#include <linux/module.h>) G  G2 ~, n( @
#include <linux/kernel.h>3 p/ N+ [  U0 ]$ P
#include <linux/types.h>$ x* C, k# V; M: L. U, Z
#include <linux/gpio.h>
& ]$ c; A! |+ B/ ~- y4 s# G' K  M#include <linux/leds.h>
; u$ n( E  R) R. t#include <linux/platform_device.h>' T$ g- d. G* ~! E+ a. W' q

& X+ A& L* P  h' _9 t* k#include <asm/mach-types.h>
5 ]& `! W, p) i#include <asm/mach/arch.h>
% E1 a" f/ k6 I' x  t#include <mach/da8xx.h>
3 Q# q& A% q2 y1 Y) v#include <mach/mux.h>
0 B5 {+ n8 a- L% y4 m! Y6 Y6 v2 d4 N; F$ k7 F3 {
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
7 l7 ~% q$ T5 _8 i. ]+ o#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: @3 s& d- @2 ~% y7 O#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- H+ [2 w; L5 r, }# i$ T6 c- r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* A) ~! Y$ w1 U  H
! C" k# [6 P  t/* assign the tl som board LED-GPIOs*/- W! g$ V" s; c& s( Z  d
static const short da850_evm_tl_user_led_pins[] = {
- M% O% k! t4 V$ e: B2 j        /* These pins are definition at <mach/mux.h> file */
. Z0 d1 F/ B/ y  G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 k6 y& X8 c8 R        -1- A+ I- U- ^7 x
};" ]; c1 W+ @4 w! A; U9 m- ~! S9 @

# q. y& _- K; z) sstatic struct gpio_led da850_evm_tl_leds[] = {& j8 ]2 q1 x- g  J& a
        {
8 m! L( E( X% W9 g6 E) a0 x                .active_low = 0,  k$ t( b1 w( K" Q% @3 n# x% Y
                .gpio = DA850_USER_LED0,
$ }5 P1 e0 j$ M6 o2 {2 j! x                .name = "user_led0",* v9 X" `, K1 |! n9 L
                .default_trigger = "default-on",; R0 _5 K$ |& d% R0 W" c1 Y
        },+ M- e6 U% O: A
        {7 q7 \: J% k. P) y% j( q
                .active_low = 0,
. y) H. r7 h5 ?- `4 ^                .gpio = DA850_USER_LED1,
# K' m8 J1 b) J# b* f! P  P, K                .name = "user_led1",2 \5 r6 ?# t1 U* P1 y- R
                .default_trigger = "default-on",5 [( @. K4 @8 D8 ^6 J
        },: }2 {% I/ q: A* [; I. Q5 l9 z
        {7 b6 a7 a' w% ]. i7 o! L& X# B
                .active_low = 0,  m8 s- U( s- f* ?3 l
                .gpio = DA850_USER_LED2,
1 a) ~' j8 S4 E! N                .name = "user_led2",
: C# c3 b- }0 _7 x; ^                .default_trigger = "default-on",6 R* J7 r% i1 l$ {1 [6 q$ v
        },
& ]' ]7 P3 @5 v2 n8 a. k5 \        {) }; D9 L& U6 y6 H' J2 U
                .active_low = 0,
7 V) O2 L% o4 E7 ?8 c1 D                .gpio = DA850_USER_LED3,9 k/ h- q6 M5 P, ?/ |9 k
                .name = "user_led3",; M+ T$ o9 M& i2 i' v! {; y) j
                .default_trigger = "default-on",5 T; E1 Z7 h2 X. |. u5 S
        },5 \2 ?6 p- }; W
};' Q" I0 j. G; O  X- _
8 l4 r) |6 w$ y) D2 y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. p0 Y. @9 ?. C+ `3 O4 S6 T6 z2 m& l        .leds = da850_evm_tl_leds,( Q9 v7 K( G$ L5 `
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 s1 i. k9 H) V( _) z, v" ?% {
};
0 Y1 r3 G. Q" L& J2 A/ [
9 D2 c  g; x) K$ `8 `* _static void led_dev_release(struct device *dev)2 G- R, R% Q7 Z) S1 q
{2 D. o/ d# c  n
};
' p4 H  R5 J0 r% ~( X+ K5 ?$ L, Q
" Z: h  [. }+ B$ Wstatic struct platform_device da850_evm_tl_leds_device = {
1 C- r+ k; E4 f, r6 c        .name                = "leds-gpio",1 S% t& R% ]0 N- F  K! K6 M
        .id                = 1,
2 I8 @, D) a8 C) z        .dev = {
( u. k" ~0 v$ c- Z! B* S                .platform_data = &da850_evm_tl_leds_pdata,
3 K' K7 T3 o5 V2 q" U; }: c. c* n- p                .release = led_dev_release,+ ~- @! o/ B% t; u
        }& K. Q  }! |) l. m! ]& R
};/ v- |( b+ J# ]/ O' a

4 u, ]$ t# W& n4 t6 rstatic int __init led_platform_init(void)+ P4 V( }. f4 z$ R2 W
{: z$ Z' V0 u! f/ x# E
        int ret;
  `' u" R) Y: z( k; z0 ~1 A#if 0
) A+ l+ d" J- Y0 G' z        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 M: B0 d1 {6 B
        if (ret)
# B- W# C9 P; ^) z" G& a" @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# v7 n  \' O1 v0 S                                "%d\n", ret);) C0 W( L& X' X& ^! r9 `4 H
#endif
8 e: u" j! B; k0 \* O- r        ret = platform_device_register(&da850_evm_tl_leds_device);
0 j  M/ Z3 {) K! s        if (ret)/ O9 D* m7 ]% H6 _# X
                pr_warning("Could not register som GPIO expander LEDS");
' b% J3 w1 H2 K' e  G        else& L; A1 W5 X- A) i! v( z+ `! A# ~
                printk(KERN_INFO "LED register sucessful!\n");5 ~: d% O2 ^+ N- J9 R/ L9 ^

5 M' Q3 y/ t, B& T        return ret;- Z& |! W4 O/ E2 k  b
}- J) _! d0 O5 u4 |
1 O# t1 S7 T! m+ G$ Z5 G
static void __exit led_platform_exit(void)
# R, ~) r: N9 Q: S/ u{/ C+ h' A$ |! l+ J2 }5 n  [
        platform_device_unregister(&da850_evm_tl_leds_device);
$ z' v* q- T& T: a) X2 U3 f/ Y$ i4 c
        printk(KERN_INFO "LED unregister!\n");5 E# G  Y, T* m( S9 h
}
, o. J: i& P) }7 k. V/ H; @, I1 I- h9 k+ z$ `( C& e0 @
module_init(led_platform_init);
2 C" S( y. K  F! W, ^0 _; a$ w+ ^module_exit(led_platform_exit);) V" Q) B1 ~+ |7 u  e1 G
' C* w  i7 n3 P- [; s* o( D  _
MODULE_DESCRIPTION("Led platform driver");
, f0 M/ w0 Y) S/ A4 c, o  ?/ `MODULE_AUTHOR("Tronlong");
5 Y; i5 i2 r; A1 X2 y& eMODULE_LICENSE("GPL");
" s; R: N2 [- g/ L0 T- l* X% f3 m5 E5 m2 R9 e* f3 l
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 10:44 , Processed in 0.039628 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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