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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; K4 k* E& s/ X" c' Z9 _) b, n# D$ i3 E
#include <linux/init.h>
- q- f" G; y4 h, q) q9 a#include <linux/module.h>
9 t( C9 z* ^) z#include <linux/kernel.h>
8 W3 j+ P) W! ~+ L+ |4 t2 j#include <linux/types.h>
; j1 j4 |  W; ]: f, D#include <linux/gpio.h>
% x- a& K3 @$ V#include <linux/leds.h>
9 b$ ~/ W9 `- L/ h# V* c#include <linux/platform_device.h>, [4 b. h/ p8 y0 n- `

4 j1 P6 D; r8 X0 K#include <asm/mach-types.h>
( T/ N& c. q. d#include <asm/mach/arch.h>8 T& u5 j3 o! V+ P% R' _
#include <mach/da8xx.h>
5 T7 y9 Q9 o2 l% R) }#include <mach/mux.h>- @! D; r% H, J3 e. I" T

; `+ u5 [  F* @& `" {% }$ W#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)" l4 r7 L! x3 w9 M) R* Q' D' F
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ }; J9 M$ y9 I$ E( `$ M
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 I+ _  M) e1 B1 ?) w0 H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; P4 q+ o5 {, C; ^' [& ~
0 y# L- c5 g9 y: S/* assign the tl som board LED-GPIOs*/) |0 M: k* \, T, ?
static const short da850_evm_tl_user_led_pins[] = {
7 q* f" g' x1 T! j0 p  f1 I% T        /* These pins are definition at <mach/mux.h> file */
7 @& a7 @+ b' c  Q; E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 d  V" v/ W. \+ k0 t5 M        -1
- \- o; X" T! a3 l};
% y1 [" C! U3 E( r% Y; ]% a% n* y, ~. G0 B9 ?
static struct gpio_led da850_evm_tl_leds[] = {
# F3 w( c7 `6 Y  |3 n1 x1 ]        {5 U& n  j5 R. j$ B& {$ w
                .active_low = 0,
6 v$ v& ~4 A; J3 k9 R                .gpio = DA850_USER_LED0,
* F0 l1 Y8 y8 `7 P                .name = "user_led0",
' [& n) Y1 C5 J2 j3 I! F' }                .default_trigger = "default-on",
" L  U  c+ t2 @$ d' ?. s        },/ q. A/ p4 h. d
        {
9 O+ P% o# Y1 E) }5 |# p# y" \                .active_low = 0,: c6 Q; v( t; L, K2 k) I
                .gpio = DA850_USER_LED1,
0 i1 a) z. y9 [) `) c  S                .name = "user_led1",
, b; K+ J, w% C                .default_trigger = "default-on",
- J$ V% Z( J; Q* g9 T        },, T: M5 S4 ]: n4 T
        {
1 R( J+ o- j* ?& K3 H" @                .active_low = 0," M/ I, S$ n2 p
                .gpio = DA850_USER_LED2,, B5 K! X; j2 _+ h. ~" O
                .name = "user_led2",) `6 [, g9 _8 k6 ?' ^; {
                .default_trigger = "default-on",
$ p. E6 G. T0 u' v) L! G1 O7 w        },4 ?  L4 ^5 j7 r4 u" H; Y4 \$ ?
        {
, T; f" G3 D9 {; n  |* ~$ L                .active_low = 0,' n) n- `6 q7 {. k1 u$ ^; x
                .gpio = DA850_USER_LED3,
9 u$ v  d& _$ v; ]. r! O                .name = "user_led3",
% p- i) x" q6 }' I2 M1 \% E                .default_trigger = "default-on",% ]8 E4 _, C( g7 j( W
        },# Y& t; r* s" P; R, E' Q
};
$ r% }% U0 s; F1 z3 f* |
5 m( n/ G3 p! p8 p4 ~" V' sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 E' u( L5 U  B. A. x9 M
        .leds = da850_evm_tl_leds,9 L% }" R5 p6 U$ C- }
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; H, V  q; J$ p7 h4 ^/ L3 |% J
};! l: K4 w0 W8 U; u) r3 l

5 L# C1 n5 \2 k) U# c3 ostatic void led_dev_release(struct device *dev)! ~0 j* s- A. F( u" C
{
* V% d7 b) V- c4 `( y6 `2 M};* t9 w1 T$ M1 g- P! m8 _

3 A% G/ w. o3 Kstatic struct platform_device da850_evm_tl_leds_device = {
- ^( o" O, t7 Z4 E. J1 Y% X        .name                = "leds-gpio",: \/ c  U2 @6 C9 M" E  ?
        .id                = 1,
( U) \3 W+ O; F9 R# F: g6 s2 t2 D        .dev = {$ O+ M# q' a# x) J& r8 v5 C8 a  W
                .platform_data = &da850_evm_tl_leds_pdata,  K: R, _. w2 Y/ w+ D
                .release = led_dev_release,
$ P; D9 R% f3 v) W( Z9 D        }+ g8 E. E5 A% I1 y% I0 g9 v. a/ J
};0 S; G3 h8 T8 v6 `

8 t! i2 D* H- e) w3 {static int __init led_platform_init(void)/ ~$ v3 _7 b9 }
{" e: V+ L) p5 K( g* r
        int ret;' L) x- [8 p  R
#if 0; E; ?$ x5 E1 V+ Y6 |  U
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
7 y: g" `! P2 z' T# o, @3 l- f' m        if (ret)% l: `  [* S5 v; A0 U4 Q$ u
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ z1 l& o# Z/ C
                                "%d\n", ret);
5 Y  J- S7 }5 m; y# {& o; W#endif
; @* _5 Y) ^( \' w        ret = platform_device_register(&da850_evm_tl_leds_device);' a3 ?9 L1 T* f  g
        if (ret)
5 }9 W1 a" ?; `" A                pr_warning("Could not register som GPIO expander LEDS");
" D& o& t7 K+ z# c) U/ r1 C        else
- l. s" ^) s6 Y* f0 ~, j2 h                printk(KERN_INFO "LED register sucessful!\n");. D9 b% `& Q: v: |$ R0 ]
. \! e, }; o# F
        return ret;7 ?' @, O, ~4 u' z8 g
}
  l7 I8 q& Q: H" h3 H7 ]# Y3 c0 a9 ?  t: j4 Z; [
static void __exit led_platform_exit(void)
' i2 W( ?2 r8 i% ?0 q9 `" ^! h{( O- W! I; u% p7 r+ J3 E
        platform_device_unregister(&da850_evm_tl_leds_device);
# H# P: {4 j+ E4 U8 ]6 G0 k5 X' y- Q* s+ I* z
        printk(KERN_INFO "LED unregister!\n");7 j# |% ^# B$ z6 e
}
$ p  f' {9 J  J! s# N9 m& R/ m/ a) h: |1 j9 E+ n! `0 m5 \" ?5 B# }
module_init(led_platform_init);. c* X# `  j. V# c9 [
module_exit(led_platform_exit);
1 t0 ?% f* K+ j. @1 ~8 I1 w( p/ ]  W2 u* E  P& N
MODULE_DESCRIPTION("Led platform driver");2 Z' b- x6 K* D% N) I
MODULE_AUTHOR("Tronlong");: k5 C, l% z) v" _* V
MODULE_LICENSE("GPL");+ D5 Z. o( Z" b; C, x$ ]' l' N6 V

" N' g1 _/ O1 t" r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-6 22:22 , Processed in 0.037796 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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