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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; g2 ^# z: X8 ^. c6 h#include <linux/init.h>
: `, s( t5 d4 q  y' n8 T! z#include <linux/module.h>
; R( V' h+ B8 o2 x7 R/ b- \#include <linux/kernel.h>
+ E) S4 M& E' E4 }' v: a. ?#include <linux/types.h>. J3 \( m  J" a
#include <linux/gpio.h>
/ V+ q, h6 x% Z8 I4 M#include <linux/leds.h>( B: S+ w. y4 Q, t1 T. K$ b9 u
#include <linux/platform_device.h>' T5 ^3 \0 F4 F7 H( Q7 k9 [
* I& h$ Y6 J+ \
#include <asm/mach-types.h>2 c  V/ C; q& ]' u( S1 p4 s
#include <asm/mach/arch.h>
/ L: o" b6 G2 _! B0 P#include <mach/da8xx.h>
9 Y$ A& ?" ~, O#include <mach/mux.h>. r$ y  R/ V" j4 h5 c$ Y

8 ^3 R4 R# o% j' w/ Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  P, N+ f- l: c6 X8 b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 W/ b9 S& M& X9 s. t) x+ ]% z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1); ?8 G- g3 ?7 i
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% e# X: x* v7 A
; l- s* F$ |1 R
/* assign the tl som board LED-GPIOs*/
/ ]' i! K5 @6 H) ^8 Q! o" j0 u4 Ystatic const short da850_evm_tl_user_led_pins[] = {$ e% }- Y4 |' O: G: p4 j0 P, D
        /* These pins are definition at <mach/mux.h> file */9 D0 c' N3 ?4 o% X" @
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  V. N) C" L/ ^! u  M        -14 e5 Q) g5 @0 H9 F! e! @$ l
};( @! ?3 i+ k# ^) v

- z) [9 f. y) D2 w! K, Sstatic struct gpio_led da850_evm_tl_leds[] = {
3 X  R! o) U+ T# K        {
) n* T- t1 u4 X: o$ z3 h7 r' f7 @                .active_low = 0,* H  m( R. _) U0 C' g
                .gpio = DA850_USER_LED0,- ]% @$ [4 m6 g3 \$ ^6 Z/ H3 r/ u
                .name = "user_led0",$ O5 O7 K$ T5 G. f2 m
                .default_trigger = "default-on",! Y$ c! L+ f$ G& c- S4 ]
        },+ H: X# Q+ Y+ E0 `! v
        {; P: X4 J" Q0 w' n& E. E" P( ]1 T
                .active_low = 0,
6 T. q, {& G3 Z6 B% S                .gpio = DA850_USER_LED1,
: v  N+ ]  r# s& J                .name = "user_led1",
5 G/ ?& s) D* b7 R$ f1 g" R7 R# m/ X1 t                .default_trigger = "default-on",
7 A6 o6 w+ ]; J. ^$ [: z        },
6 j+ k- y0 \! i. Z        {9 n$ H* q! \3 h( o! B) W' K: S
                .active_low = 0,. e* c8 U+ i% _
                .gpio = DA850_USER_LED2,5 _8 B7 b7 b7 ^1 k/ y: ~9 A* p
                .name = "user_led2",
3 a3 C  ]! O% U. h& E0 O                .default_trigger = "default-on",
, m& U/ n  `8 j- y  k        },
' U0 `% X8 n. h; s        {; q; }7 ^# S+ x, C: X+ W# U
                .active_low = 0,6 i9 C: {: \( S3 p
                .gpio = DA850_USER_LED3,7 Y3 Z& \- l; u2 V% f
                .name = "user_led3",
, _" f2 V. I0 @  Z) H: z  \. ^                .default_trigger = "default-on",  A; i, ?3 e( E! }) @4 p
        },
0 w: y5 ^0 Z! P" U9 f" C4 W' l};
: k6 B' l7 P; P9 H
3 r/ Q1 _& c" j9 F$ G( N" h. qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
8 h+ q8 v6 F" h' j$ x: a& S# E7 E        .leds = da850_evm_tl_leds,
$ d- S" Z. P& C$ F, E# Y: j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),4 I5 X/ A& t& f( l' p  I
};
: p0 s5 n* f  _* \
9 _* \4 H- K7 w4 Gstatic void led_dev_release(struct device *dev)3 c( F- m4 \7 q- h6 y, V
{
. |) l3 ^2 r, A) J  j: Y};
$ h$ `3 g" ~* B6 r. v- Y- ~- }7 O% @8 x" P' ]( M$ P: t# l+ r
static struct platform_device da850_evm_tl_leds_device = {
( x% ~: u" n8 W( ]# D( d/ [- ~        .name                = "leds-gpio",5 Q( S$ v) A. U& ]: A+ D0 F$ y
        .id                = 1,
. u: s& z# P( E; F. @        .dev = {" G$ R, |/ J' [! j9 v0 l
                .platform_data = &da850_evm_tl_leds_pdata,
3 I, Z* c" ]( B# b; Y1 c5 p                .release = led_dev_release,
) v. c/ y5 [6 g: ^& `& e) u        }
6 I- I) B3 |" u: _. l" j4 T};: a2 R! i8 s0 H* T
+ ?* z# Q; W  K; {" u" C
static int __init led_platform_init(void)
/ `3 z  d4 C6 _) _( j, q{
- p2 `  T# ~) v/ Y. o        int ret;9 J5 c. z! M+ {3 |2 L7 Y/ Q
#if 00 O; G2 r6 @* W
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 H3 P; ^, X/ Y
        if (ret)
- P- r) N6 u! }0 U' M3 k% g                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; u! O) c8 ^  _7 m" q, M1 R                                "%d\n", ret);
5 T6 _- w, G1 ^9 J7 h- l. i. ^* Q#endif: o" z) y5 a# w$ ~- {
        ret = platform_device_register(&da850_evm_tl_leds_device);9 I9 q* r0 A! z2 f
        if (ret)
. y9 s4 z/ W9 P; v# [# |: F                pr_warning("Could not register som GPIO expander LEDS");& _2 h7 x8 q* I, O
        else# U: v# f" u0 R2 x6 r  X% [4 k
                printk(KERN_INFO "LED register sucessful!\n");
- @' v/ \! T! I9 b' l; y4 C6 |  z! v
        return ret;8 q/ Z. Z( ~% H1 f: b
}
0 L% \% k  ^7 s
' t  |; e) P* ?  Q- X- ~static void __exit led_platform_exit(void)0 t$ b& U7 L' ^
{0 D2 x" x( c/ R( D" k/ d$ ]
        platform_device_unregister(&da850_evm_tl_leds_device);  `# g- i5 h1 b

& f& W6 m( K2 O2 |8 ?' O        printk(KERN_INFO "LED unregister!\n");
$ e3 J/ h: A1 `. H: u}! R4 s! g: L1 B% C0 Z

" N" C) @+ G' T! ]$ Y; I0 I, N+ Kmodule_init(led_platform_init);' {0 I, b" Z* x. K
module_exit(led_platform_exit);
5 Z2 l3 {+ v  }* b* A
7 A, J' q6 Q) z2 w) DMODULE_DESCRIPTION("Led platform driver");
* R7 B$ U+ j/ I6 DMODULE_AUTHOR("Tronlong");
9 n2 G7 y' q+ h  C/ m8 o) WMODULE_LICENSE("GPL");
0 }% B9 v$ L2 ?: g. h
7 d$ s% F+ n- M( h5 z: p5 H
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-3 23:50 , Processed in 0.039636 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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