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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
: X& X+ W- G# L+ P2 Y7 U5 r#include <linux/init.h>
3 y) M6 ?' @4 S" l* {#include <linux/module.h>
; a! L$ M8 L0 e% D8 _#include <linux/kernel.h>9 G, l+ \. m; \0 z& x  d
#include <linux/types.h>
; e! i$ V7 b) N: W#include <linux/gpio.h>
3 v' Z8 C2 C8 n  I  r#include <linux/leds.h>
) u& T  i* D/ R3 n, p' t1 _, A#include <linux/platform_device.h>1 b! |# p. F7 O4 v

6 e+ ~0 ?3 ~' W8 z/ i. U% W#include <asm/mach-types.h>
7 T8 s1 H9 m( d. ?5 `+ X5 ^8 ]#include <asm/mach/arch.h>. A! _5 x" q3 {6 m8 l- {
#include <mach/da8xx.h>$ J1 u1 r- x* }2 e  }$ f
#include <mach/mux.h>
7 X' N5 P- o$ C" h7 [7 G
8 i( q% L$ N. ?# }2 T#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 I/ d$ X$ s. |/ O1 Z) G% S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), ~0 t0 R! r1 y0 I: r" D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): E1 p6 u( r4 O- o  e
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' n* ^9 b: f" B/ x4 R  a
2 H* X0 R7 k, |* T* B
/* assign the tl som board LED-GPIOs*/
3 j  I9 S) m9 g( C7 D) Hstatic const short da850_evm_tl_user_led_pins[] = {
- ]  ?; J; e( A        /* These pins are definition at <mach/mux.h> file */8 c; E$ |$ _* v) \/ \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# p  l% J1 D& ]3 M        -1
$ t/ C! \' X) C4 _5 I1 S};
( b+ b9 z) f% `1 o) ^
" s. f: W' ]& u# n$ F8 Kstatic struct gpio_led da850_evm_tl_leds[] = {7 Y0 I' N3 L3 e9 j# Q4 l, g
        {
5 D3 r) l. s* T2 q" u* z& I                .active_low = 0,) k- O/ A; ~# }6 \# y1 p3 r* t
                .gpio = DA850_USER_LED0,  k4 l+ u/ O1 H" N& _. f: y% |& M
                .name = "user_led0",, R5 M; j* _( |" p$ W: k* {
                .default_trigger = "default-on",4 q; s$ c2 X$ K+ d# R
        },
$ z, J# |1 R2 A8 m$ Z        {6 ?$ @& W) N9 K
                .active_low = 0,
" i) C& _! y' P% i  F) i6 D! T+ M5 T                .gpio = DA850_USER_LED1,
" o5 q6 R7 H, l! i# M                .name = "user_led1",! \4 Z2 M( i3 v
                .default_trigger = "default-on",) k4 b9 F( b$ r8 b- y* I
        },7 q2 i' ~; |8 @- i
        {# m  c4 a1 r) J* T" _! r; p7 D
                .active_low = 0,
3 r2 M3 ]$ k( r3 w3 i                .gpio = DA850_USER_LED2,- |" h- F* G& o
                .name = "user_led2",
) `- m  M( [% T. z& L4 k# q# Z2 H" q2 `                .default_trigger = "default-on",1 C' _, i- f9 P0 |/ l. g
        },
& I" }$ Y% r- h- a7 N        {% I. P& x' O( C4 q0 y( S4 i
                .active_low = 0,2 Q! Z9 l: ?& j, X
                .gpio = DA850_USER_LED3,5 {! G( G2 k8 C( ]: B, {) D5 N# q- [* `
                .name = "user_led3",* |1 l2 X- m& c; e/ p! V; k$ S) Q1 ?
                .default_trigger = "default-on",
0 n, u% [# r, F  v- A- k  J        },
4 [! ^  q+ R' X) b};# t  t4 c' [  y% z: ~4 R- `3 L  R

( [7 u' N# [4 W3 Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 P* J( t& V) Z2 N9 ]6 G/ ?
        .leds = da850_evm_tl_leds,  K% ~9 j- V( d6 ?* i; L7 h
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ i5 m7 c" z  |) ]& v
};  q' e! i% g$ h* W. v5 \2 B

0 j& N2 h6 U5 \; N; ]( astatic void led_dev_release(struct device *dev)* I8 \/ Q5 ]0 I/ t& C
{( {! ~! e% n- f) P8 o" X
};. o2 p- @' \: U

+ w9 M5 Y+ \" `static struct platform_device da850_evm_tl_leds_device = {
. ?' m2 H! Z$ o        .name                = "leds-gpio",$ O5 Q% p% i( P) k1 K$ R0 ?
        .id                = 1,1 U9 B2 l1 g+ L% ^
        .dev = {
2 s- z; t: ?) L# q                .platform_data = &da850_evm_tl_leds_pdata,
. e# c5 E5 q7 o7 i7 L                .release = led_dev_release,' V4 S; U% f( i. Y0 \0 x
        }
5 ]8 A5 p+ C1 S. q6 x! @+ Q};" d7 K. ^2 K6 \4 [* N
) x: m1 d! g: T5 m, n) }. L
static int __init led_platform_init(void)
/ p% u4 I+ A* u- k4 y' l{: k% Z/ f6 Y& Z. u; b
        int ret;  u( l1 q" }# N) {& G; J
#if 05 o( k  {7 [. @' F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);& Q' v8 r' j  X$ G+ p, g
        if (ret)' }0 R( v  w8 P* X! p# e/ }- T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 b. L0 |- t: O& B9 y                                "%d\n", ret);' R' n) {" z: S% h  d
#endif
! D3 A, F9 n1 P  n; a# x" e        ret = platform_device_register(&da850_evm_tl_leds_device);0 X! l0 w1 h/ P
        if (ret)
7 r) K7 j4 E8 H9 V                pr_warning("Could not register som GPIO expander LEDS");
! U3 I- x/ U0 }$ k+ ~+ U- V        else% o/ i# y$ G7 q; h3 i$ T: ^1 g
                printk(KERN_INFO "LED register sucessful!\n");6 @- P, ^5 I* y8 d+ T

! _6 N$ ^7 z% d8 Q$ S# v        return ret;/ w) J: E" P, p; S
}
. B6 N6 T4 M$ m( y' u( F: t$ _
( @  g7 a5 T% F7 kstatic void __exit led_platform_exit(void)
  r4 K9 T/ U& F( S9 w5 e: y{
# O( h  F5 k5 k7 T        platform_device_unregister(&da850_evm_tl_leds_device);
! W) u  e5 |( ~- P3 C% ~! g+ _! Q+ d; x
        printk(KERN_INFO "LED unregister!\n");
7 Y. d! w& d2 r$ s}
1 h9 Z7 _, \9 Z- {' I/ T- o3 e3 _8 S8 }* f( j. L* U6 o
module_init(led_platform_init);
0 Y! s5 W. I6 [$ X3 l" emodule_exit(led_platform_exit);, E! b* N* C* O& ~

7 o# l0 ?1 K8 dMODULE_DESCRIPTION("Led platform driver");7 U4 a- g6 t/ L! H& _) Z* o+ |
MODULE_AUTHOR("Tronlong");
$ e* Q2 A. \3 w/ I) O! cMODULE_LICENSE("GPL");
7 {, ~1 j  x, f$ n. E) c2 E
  g$ L! f; R8 l7 H. \: p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-4 08:01 , Processed in 0.036850 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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