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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 T7 X4 C2 g" w' e#include <linux/init.h>- D0 M( P# r. ?; K- \# _& N
#include <linux/module.h># N& c8 e* q6 E/ u/ m
#include <linux/kernel.h>- w  ~3 ^* q: u8 l: j+ w( @
#include <linux/types.h>
8 ?9 P7 p8 H# H  l# L4 R#include <linux/gpio.h>4 K* q7 j" l8 {. h& j# [" g1 a9 g
#include <linux/leds.h>/ @& s0 @, x+ j# Q
#include <linux/platform_device.h>
' U1 I- ~2 w  R% ]7 E7 ?, g8 ~, b0 m1 o* o+ ?3 P1 }
#include <asm/mach-types.h>) I7 c; l, ?8 ]" j+ m. K7 @) V
#include <asm/mach/arch.h>
' ^& c4 q2 n% [$ \' C#include <mach/da8xx.h>. Z2 V! X/ |4 S+ |! M
#include <mach/mux.h>9 l! i$ A" i5 c, D+ G  q

- _7 s7 y# ?( X# ?8 q; Z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 Y" Y9 C6 n$ D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 E9 h% |! f$ A" H! H7 [- K, ~6 C#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 r6 P# B4 ?. z! t$ H; n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 S8 i3 i! w7 K1 E8 `

. K5 j4 I0 X, \  r5 c. [/* assign the tl som board LED-GPIOs*/
" L' j8 ?) p+ r- Z! rstatic const short da850_evm_tl_user_led_pins[] = {; K  ?4 z0 U! q8 G
        /* These pins are definition at <mach/mux.h> file */
7 ^5 s* M+ d, x7 y        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- D% H! C7 N; E7 i: @
        -1
! y6 E) a4 P6 Y* ]# ?% T: x};. ^, R. o3 x$ W4 p1 r3 D" s
, u2 E; b- T( k9 [' Y
static struct gpio_led da850_evm_tl_leds[] = {
0 x3 m$ |$ |5 f1 a        {
9 z) T, T% U. q6 Q# ]  I3 l6 \                .active_low = 0,
1 G4 r3 Q# Q- a6 X                .gpio = DA850_USER_LED0,* w. T( F& P* p. `; N# }% |% |, }! ~
                .name = "user_led0",
% X9 O1 f) s( b* z                .default_trigger = "default-on",0 O& g) s* r3 s& u  a0 G. Q
        },
3 b) \6 I$ f" j2 Q  K. P        {6 k% _# L, v3 Y9 Y$ K" D- m
                .active_low = 0,$ m1 J$ ]7 T  H4 x6 B+ l& a. L0 o
                .gpio = DA850_USER_LED1,$ R4 b# L& e3 _* |
                .name = "user_led1",2 G2 \: E4 E: N. ]( v/ `/ F# W3 y
                .default_trigger = "default-on",
* D6 B1 c9 @# S+ O$ q2 I8 c        },
1 t. _. v  y' C: U) G* V: x" Q+ H        {) d8 w4 M( q: ^" p! O8 r
                .active_low = 0,, Y, {2 e1 {1 I* }, r
                .gpio = DA850_USER_LED2,
) k% N, Q$ ~: O+ z; {! ?                .name = "user_led2",' y  e9 c3 W4 e7 }
                .default_trigger = "default-on",3 w! Q; z% u. g
        },
, r) X1 f8 Q" E( m! e0 d% M        {. Z# n  W" h& M5 z5 i* z
                .active_low = 0,! l. N2 {& [, J
                .gpio = DA850_USER_LED3,
  e+ v+ z& I7 Q                .name = "user_led3",; D. W! ~# b* \( \8 j9 h8 o) V$ ~
                .default_trigger = "default-on",9 G  l" p" h2 z8 L4 z
        },& e& s9 O& W: r* h
};3 R+ P' E  ~0 S$ D! M
6 \; V# |  ^9 L! Y, {$ {; V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {% ~$ c" h8 R' U1 {8 ^+ t: z
        .leds = da850_evm_tl_leds,
% P; `+ ?8 X- X1 v9 B$ S/ R$ Z" j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
# D0 ?0 f  A. k4 ?3 Y8 k7 ~5 d};
8 @& ]" R! {" {, J& T
- U* x8 `. `$ |, e. Gstatic void led_dev_release(struct device *dev)
- m/ D5 i1 [- i, X, c- b  T{) ^3 i4 F9 r7 w4 M/ M' e8 d; y
};
! l7 h3 }% d  r/ \$ X% {8 N
' d8 P+ a/ G. Y  N& Wstatic struct platform_device da850_evm_tl_leds_device = {; U( n4 p) f; v* c
        .name                = "leds-gpio",4 S- Q+ o3 i) U7 f
        .id                = 1,
( V! W9 N$ l0 c" A" P( L0 S. P        .dev = {
- I3 N& W# e+ h1 P" d                .platform_data = &da850_evm_tl_leds_pdata,
1 h8 _2 G- r; U$ T# N7 u( w+ @                .release = led_dev_release,( G4 K. X0 u4 Q9 I! e
        }
( M& f8 z) \0 B* W# Y};. f  t% u6 C6 A* X9 j- o

$ S, \( w. [! h# ~. d# u* Q) Hstatic int __init led_platform_init(void)
- ?* B2 ~) i9 R6 c  [/ E: t) F{: N, |! R& a, L
        int ret;1 U7 F) u$ ~# {+ m! G
#if 0) b" W, E7 |' y! F9 D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% o6 A1 i0 c# u; O
        if (ret)
, e- }# P/ S5 Z; d5 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": a8 W' p& Z! r5 j* [- R6 u
                                "%d\n", ret);3 G4 ]- ~! ]; C* Y) m5 u; I
#endif- d- x$ G6 |3 k+ g+ B
        ret = platform_device_register(&da850_evm_tl_leds_device);
; E1 E. `4 `' J5 A' B8 C7 B        if (ret)
3 T2 c1 R2 X- ~6 v5 n+ A                pr_warning("Could not register som GPIO expander LEDS");
2 `3 O" {$ D! }        else
$ t' \+ `5 c0 X6 a0 A                printk(KERN_INFO "LED register sucessful!\n");
7 s; {+ p. D8 u( r' S: y
8 k1 \; V. z5 q( D% k. N3 ^        return ret;
' B7 {% t$ e# X( D3 j# f}& c; t# P2 S+ U1 {, b: j

$ {+ J1 h/ o9 l) X& ?) Dstatic void __exit led_platform_exit(void)
9 v* [8 U+ m: e) s6 \{
: s6 ?8 W, x1 i/ Y6 X& c- r2 ~1 [        platform_device_unregister(&da850_evm_tl_leds_device);
, H% }: m/ S( p% o: T
( h% V9 |8 c! Y1 ?; N        printk(KERN_INFO "LED unregister!\n");
6 ~6 {5 w% X* f$ @$ P}
' m7 }% ~* a/ o! j/ ]8 c
8 F- J) E; x, f0 O! q+ H* L8 D$ k& zmodule_init(led_platform_init);
# l3 z$ X6 j. N+ o. `5 `module_exit(led_platform_exit);
4 z0 @' u9 l9 {
  [: g4 C$ t% NMODULE_DESCRIPTION("Led platform driver");
( A% m" D# w$ [  q5 I6 wMODULE_AUTHOR("Tronlong");5 S* D* U$ ]' |8 z" a
MODULE_LICENSE("GPL");, I1 t$ K3 B4 Q" J) H4 @3 ^7 I" c6 Q
- l1 H" O: R, ?! c0 p, [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-25 19:19 , Processed in 0.038886 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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