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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 q: S/ Q: a1 E4 U5 X#include <linux/init.h>' a- M) }3 q& _. F; l% u7 N
#include <linux/module.h>
* s) \9 ~# k; [0 p; Y' v: r#include <linux/kernel.h>
; N' |% h8 i2 {  S; D) X#include <linux/types.h>9 }' ^5 P, S4 M! h$ k+ `( W
#include <linux/gpio.h>! J0 Y. ?* n2 C/ h% `% c
#include <linux/leds.h>
# p& H+ j/ y6 L#include <linux/platform_device.h>% w1 R4 `4 V- g6 k# S+ z9 X  `
( I- v2 ~2 \5 e" r' B4 O) |
#include <asm/mach-types.h>$ y# k% U/ I4 f$ G! p5 k) I
#include <asm/mach/arch.h>: @4 H' P+ H, A0 g
#include <mach/da8xx.h>6 x, A( {0 z8 H1 n2 f
#include <mach/mux.h>
( P# Q2 k* r/ R& O% ?$ w, G4 B  K0 S' f7 ?0 g4 U8 w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* Q7 i: y6 P; D! q2 M' u, z, e
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- l" k" K( N$ F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)/ {/ P2 X. G* F, F0 }. x% E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 d& z; C" H- F6 K& ~4 j& y  t% y
/* assign the tl som board LED-GPIOs*/, x. Q. h' Z' ?. F
static const short da850_evm_tl_user_led_pins[] = {5 B% F' k( N: t8 u# O2 I
        /* These pins are definition at <mach/mux.h> file */- E, ^: x( r+ w- P  c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 ?! B& E2 D2 I- i1 S4 X% n        -1( h) R( @# {3 D& Q
};
' c3 @( t+ p" e  G, N  S+ z7 b
6 U7 ]+ b4 z4 m! @7 astatic struct gpio_led da850_evm_tl_leds[] = {
6 Y$ b9 I; p' a. w# j5 Z) K! c        {. u) j, w& K: H: t
                .active_low = 0," r# G9 D' ~7 ^/ L0 b9 C4 A
                .gpio = DA850_USER_LED0,
5 g+ l$ Z0 _, ~+ W7 F6 J! r                .name = "user_led0",: v  M7 U: \* }+ m
                .default_trigger = "default-on",
& d1 `+ [8 C( P( M7 T( m) a! K# L        },
; @8 H% d/ P9 r$ o7 k+ f2 F4 t        {
  G) E' ~8 Y: |3 ^2 e4 y                .active_low = 0,; a1 b) j$ W  T, o: N
                .gpio = DA850_USER_LED1," r2 U  Q1 T1 }& Y
                .name = "user_led1",: H( s% y! ?1 M6 c8 Y% u
                .default_trigger = "default-on",
& R6 z% S, E8 ]5 w        },
" l* R9 E* p1 j# s" e# @1 S        {' d) C1 {5 B9 V
                .active_low = 0,
9 ?+ R- R! Z% F' d* r% H                .gpio = DA850_USER_LED2,2 e. h: s5 q# P' E" E
                .name = "user_led2",, X; T! ^1 S8 M9 p
                .default_trigger = "default-on",8 w2 o4 |5 a  N+ d, q, |: ~
        },
- v) @- z( p* @        {) l- K2 n) c: T
                .active_low = 0,
0 k7 ]7 o  ^  U0 E- }% A4 H9 q                .gpio = DA850_USER_LED3,5 p$ C& z% ^2 a0 l7 U) Y) |
                .name = "user_led3",
. A- I+ y: D; A. I6 Y- r8 c' i7 d                .default_trigger = "default-on",
& ]3 c+ A& w9 @& c) p+ ?        },+ g% C% L4 ~- e/ e; j$ t
};
; B$ d* O4 J8 P4 F( O3 I( B) d  K% W- I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: b- w5 r$ E" \; S        .leds = da850_evm_tl_leds,& n; p2 [) c3 C: C1 \  f' ~
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
. S9 Q; M# w* }# J: k! A$ j};
: N8 w% W% M8 i3 t% A8 i
( G) Y( L  e: K5 L0 q: ]static void led_dev_release(struct device *dev)
# ~* c3 @( B) {. z1 M& G+ {{( g6 k% z8 ~4 `) k$ j+ `# Y
};1 F' [% k4 M2 S2 C2 u- |

4 u0 B% `: G+ ustatic struct platform_device da850_evm_tl_leds_device = {
6 J  r7 {- [" C7 k. J/ k        .name                = "leds-gpio",
1 V, f% m3 f8 G$ y        .id                = 1,
3 R" N. \8 z1 @) ]3 `: f- C        .dev = {- h& ?. [4 i* b" x4 B6 b  F
                .platform_data = &da850_evm_tl_leds_pdata,
" H5 Q, P" H9 s4 W& q5 a                .release = led_dev_release,; S4 d1 H9 W8 |, k
        }! r1 ?+ I* L& ^, i
};
" A/ P6 D' E# ]( [1 k) c4 [1 D8 {6 Y
static int __init led_platform_init(void)6 ~. p4 z: V) y) L6 C
{( ^$ [" V2 R- i4 ]  E
        int ret;
- `7 _1 V3 V- o6 H- j2 i#if 0( I) u4 K. z# K4 [& B# F' l$ H) e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; H9 G+ u5 f6 @, L! [
        if (ret)( n5 |6 M, V; c' r0 t) w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  D$ {+ `7 I0 k0 p( j& O. ~                                "%d\n", ret);
9 o& B; N; Q# G2 Q! Z* J. d" G/ ]#endif
4 m4 Q' Z: c0 h5 ?  ]! v        ret = platform_device_register(&da850_evm_tl_leds_device);
8 X/ r4 Q' d! v        if (ret)/ {1 |" e+ \: G" Z/ R  e
                pr_warning("Could not register som GPIO expander LEDS");
* ~0 R/ H& U4 ^! i# k, u        else: ]. }" E3 y  E, ~7 u& q3 ?
                printk(KERN_INFO "LED register sucessful!\n");
# C2 B6 T3 y0 N! `5 K/ ?1 V# w& G7 C; h
        return ret;3 {0 l% L2 ]; J7 p. Z, n6 d6 R
}4 L/ S% N# @+ O" N. O+ R" [

3 {- a. T8 A" G; A$ D3 q4 }0 Gstatic void __exit led_platform_exit(void)
* x" c) C2 D1 i$ o% A- s. T{
4 M5 H+ _" \# `  V        platform_device_unregister(&da850_evm_tl_leds_device);+ e9 g/ i) T; I3 G, M

1 |0 ]$ i: S$ m1 e. k, Q        printk(KERN_INFO "LED unregister!\n");
) D! f2 @6 }# P/ m, b/ r}
/ `3 K' ]% G# F- Z" J* d+ f) u9 a7 ?( h( L: @* U
module_init(led_platform_init);
. u4 Z: X! g' o# O" S. Omodule_exit(led_platform_exit);5 k' @9 s3 }+ E7 ^& J/ r9 f
* d8 F7 [' {% q% k; E3 w% _
MODULE_DESCRIPTION("Led platform driver");0 Q( U! `  u1 U( U3 R/ J+ L; |3 V2 Q8 N
MODULE_AUTHOR("Tronlong");
5 h) T( c: j8 T, u7 G% MMODULE_LICENSE("GPL");
, T+ k; O4 z' A  }! u
4 f6 ]' t0 M1 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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