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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% u" v! s! m$ J# u3 i#include <linux/init.h>
( {% P2 `$ }6 X# d" v9 g" v' g#include <linux/module.h>1 V; A. F. j' ?% k$ u; U) g8 o: g1 P
#include <linux/kernel.h>
% X& a5 y& c$ M& N5 \( u5 U#include <linux/types.h>
2 c* E5 m. E- O' |" V: v8 i8 U#include <linux/gpio.h>
8 ^# i- l2 @* z7 w+ J+ U#include <linux/leds.h>5 E* {/ M8 n( y  k; j& v
#include <linux/platform_device.h>
# |% ?& `  @. I7 s1 i' g' z( y; |" T  z% a$ g+ E$ k3 }
#include <asm/mach-types.h>
  d- d, b% `4 l. ~#include <asm/mach/arch.h>4 R0 s. m& A( r) Z
#include <mach/da8xx.h>
. Y) \+ e5 v7 {# n. j  _5 F, d" D+ ^) I# |) w#include <mach/mux.h>
  ~' `. z1 P% ]: f& I" T9 K3 C+ a5 Z& k* g$ R- v- s* A; N5 ]4 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& m4 _: S; L: S% P7 l) v$ J
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
, C# O& |3 a! x1 v: }6 @$ Y#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
1 M' K3 w- J$ Z0 f" @. T#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 J$ V) t. a3 i) I! d2 N* }
& k# `" P% x+ W$ e
/* assign the tl som board LED-GPIOs*/
$ Y& y; b0 x8 Z9 T6 K& T1 }static const short da850_evm_tl_user_led_pins[] = {( w/ r5 X& V% G* E
        /* These pins are definition at <mach/mux.h> file */
* m6 ?9 Z" O& H8 L( ~6 B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! \$ U, d0 g) t4 R0 D3 V% z
        -15 H6 \% ]3 S2 a5 t2 M8 M
};7 j' \" S4 [* x+ K5 K+ z3 H& U
' B" A) A" V/ O4 |/ V/ P  X9 `7 A  q
static struct gpio_led da850_evm_tl_leds[] = {" ]7 N+ H7 B7 X5 @! w
        {
; G* H1 y: h. ?9 ]4 |                .active_low = 0,! F" ^9 D% R, w2 @6 [! T
                .gpio = DA850_USER_LED0,* i2 D8 X/ f) J$ F7 J2 q4 a  \3 o
                .name = "user_led0",% y! M3 ~% @! r6 v8 Z6 Y
                .default_trigger = "default-on",) r, \; r; W* K. h7 j0 H# h* w
        },( l# |$ ?7 W. T+ V3 F# \5 L4 g8 [
        {# D) V2 x0 q6 @- P0 b* O9 ~- \; B
                .active_low = 0,# U  J7 `' l* y3 e2 w
                .gpio = DA850_USER_LED1,
& l1 V+ T# |  |  ?' _$ a                .name = "user_led1",% B- [3 ]  H0 R! {9 M2 x
                .default_trigger = "default-on",1 I7 h- T9 O; F* J. f2 L
        },
( A1 j) K% L' _! {2 n        {9 g! E7 a2 Q3 p
                .active_low = 0," R+ J+ }) a3 @/ A
                .gpio = DA850_USER_LED2,
# y+ L! O: u8 p                .name = "user_led2",2 q' E: \/ O; D/ Y- }+ z; E) \' F
                .default_trigger = "default-on",4 v5 s0 @( Z; o, g4 s7 ?2 h
        },
7 F3 V( G7 ]  J/ J( o" n        {" m* v  ~+ t! a! K# }; z% v
                .active_low = 0,7 F  a( X5 n: O' G* l: }
                .gpio = DA850_USER_LED3,
5 m$ d6 r/ I& b5 @; k& f                .name = "user_led3",$ a0 \. x$ J, P
                .default_trigger = "default-on",+ C+ E! m4 X# q( y6 O5 n
        },
5 A) \6 y4 T! n  m4 _};3 e. _! N7 T( J% |
' s+ Y" J; H1 Y. a' i: M( a) O# ~
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& d1 |6 l) ?6 a% g' X        .leds = da850_evm_tl_leds,2 A4 L& `! q4 w0 M" Z0 ~0 Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* |) v1 |- d' }8 a- S
};8 B! a+ a( c7 w: h

, i8 y4 w3 ~2 K- Z0 Jstatic void led_dev_release(struct device *dev)0 S; ^+ P; X) C; o
{8 K: Y1 N! @- ]$ c/ A2 o
};% {; S7 I& b0 i4 J( |6 P$ ^! i4 V7 w
8 p- F+ U( y- P
static struct platform_device da850_evm_tl_leds_device = {
6 {  K" y/ i6 l) ]) g. b+ y        .name                = "leds-gpio",3 b- K( x$ L7 R2 {
        .id                = 1,+ S  |0 L! {0 ]2 q0 |
        .dev = {
1 W8 g' a, A  n  Q' T                .platform_data = &da850_evm_tl_leds_pdata,6 ]" v8 f! G) m  e
                .release = led_dev_release,5 J2 i. N5 ^" Z! E
        }
2 c( w  }1 ?+ r# D! ?};
1 Q  m4 L0 S1 O4 y7 A/ m
) D" R7 J; `6 q7 |$ g7 _# L% D  V7 I. rstatic int __init led_platform_init(void)! }: }7 @% T. Y; ]& Z( K
{
1 w( A/ G: j' A+ p, v5 s; }        int ret;- D. i3 M9 d$ w1 d* A( k) }
#if 02 _7 W5 j  Y; U. x! U" m9 Y
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);9 w5 g3 d( W# W# f% g6 Q
        if (ret)
2 X: G) x9 S7 E/ e                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"7 @# y# Q. {0 d
                                "%d\n", ret);
0 ?; ?! V, x; g+ o6 }8 j#endif
2 v; ]' L4 M  |' H        ret = platform_device_register(&da850_evm_tl_leds_device);
# B: g/ H1 @& i7 N$ ~" B, F/ d        if (ret)
% j! G3 i8 V6 O+ n                pr_warning("Could not register som GPIO expander LEDS");
0 I! S6 u" G( F, b        else4 q4 U. P- d/ P, f
                printk(KERN_INFO "LED register sucessful!\n");
8 \3 s4 ?( D) Z' M) H/ e$ I
, _9 ^) q0 @( s/ A5 \2 J        return ret;
; G  y$ n$ k* ?}3 A/ `3 R# Q' H7 M  l2 y

9 x+ x9 o- y3 E. Dstatic void __exit led_platform_exit(void)+ E, s$ r3 \! e8 w' W* @2 N
{! z) m7 n- x4 s. K
        platform_device_unregister(&da850_evm_tl_leds_device);3 O; K8 L# O; j6 W

* x) ]9 _' `; M- q& v        printk(KERN_INFO "LED unregister!\n");
; T$ ^( H" }" ?+ U! H5 E5 L}1 A5 T1 ]4 n/ z/ J- ~7 Z
" S/ `4 {# ]7 u0 ?7 i
module_init(led_platform_init);3 u7 [. E8 ]$ p. o4 z4 t
module_exit(led_platform_exit);# f0 A+ b) b  [& t

9 b8 O4 l; w7 G' S) z" IMODULE_DESCRIPTION("Led platform driver");4 H, g# ^+ }' X* W  \( S/ c
MODULE_AUTHOR("Tronlong");& l5 V1 l5 C8 ~/ Z
MODULE_LICENSE("GPL");% Y' N# m- b1 K% x) H8 z! N

  ~; M2 o# X9 ]& @0 T/ b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-5 20:33 , Processed in 0.040621 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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