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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。7 a5 q+ S6 f. A$ y) Z6 N
#include <linux/init.h>2 B$ C- I3 G, e: d
#include <linux/module.h>4 W: p7 E5 y. N# ?+ P! d( x" P, @
#include <linux/kernel.h>
5 N1 u( v2 z7 l. n, C/ K. ~#include <linux/types.h>& t3 w' I  T9 ^( m
#include <linux/gpio.h>% ?( [% ^9 D! M& G
#include <linux/leds.h>
  A7 n' @- D$ ^#include <linux/platform_device.h>6 r  s" c/ P) F+ l# M9 d
& J4 A1 j) S, `  ?% G9 r, S! E, x" N
#include <asm/mach-types.h>" S, W% S+ o% Z9 g5 `* G$ _/ B
#include <asm/mach/arch.h>
. f  V1 q# O  g+ ?# q( L#include <mach/da8xx.h>4 h4 e3 G2 Q- e( I
#include <mach/mux.h>
/ n7 \4 _% T4 r. {$ T, ]$ _* N& L' L) B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)5 x, F4 P2 C  F, ?" L. N* v
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% b" r$ S9 @0 I! w( X) \
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)5 }6 I7 i7 p" L6 z$ E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ |" p/ m( ^" ]# r# L8 q
/ J$ G3 c& l% W6 V* Q; z* t/* assign the tl som board LED-GPIOs*/
% X2 ]$ e6 f6 o& O' K2 j" l$ b6 ystatic const short da850_evm_tl_user_led_pins[] = {3 _# J4 V( V, F5 u6 V9 Z
        /* These pins are definition at <mach/mux.h> file */' z% S! Q" N" |! X! ]
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 q! a8 y* v' y        -1( C! l$ [3 O; W9 ~0 x
};' h" U+ n# T2 p

: i  p' [. n5 p! K+ i. n8 ystatic struct gpio_led da850_evm_tl_leds[] = {
3 c4 x9 `# Z$ X0 {' M9 g        {, p1 y  `5 o* @* Z) q( r
                .active_low = 0,8 @5 h8 T" `7 w3 i, q: ~4 ~
                .gpio = DA850_USER_LED0,/ |, |5 h' w- G& W$ x# c
                .name = "user_led0",
; o4 K1 i6 R% l. C                .default_trigger = "default-on",2 }- P  d2 O, [$ F. L
        },; C! k' \$ _% c1 p  v9 X: b
        {4 O8 o2 J6 n, a0 ]
                .active_low = 0,
/ ?4 K- w$ o( }                .gpio = DA850_USER_LED1,$ a8 n9 E/ O3 E
                .name = "user_led1",
, ]3 ]& m. K" t5 @# Q                .default_trigger = "default-on",; W2 l( d7 {/ U% E
        },& L2 ^6 v8 ?2 H8 L8 q5 q
        {
) h4 {$ {) S7 k- l: d                .active_low = 0,
( z2 L7 ^4 j. {0 b+ Z                .gpio = DA850_USER_LED2,
! ]- R- J+ [& q7 w3 {+ @1 Q( q! h                .name = "user_led2",
$ E8 b/ U' _/ x9 Q3 z/ N                .default_trigger = "default-on",
* q5 r" R3 g0 L' e/ h        },
1 T# n; Q6 l% _) q+ z! I+ t        {
; m8 o9 K. r6 ^# S8 D4 b* q+ C                .active_low = 0,
: b' @: i, \' [                .gpio = DA850_USER_LED3,
" e: ~) S. v& u9 I3 T  G                .name = "user_led3",% ^8 `1 M: k! E6 X
                .default_trigger = "default-on",4 x6 \% N8 O7 @8 O! s( h0 Z5 f. b
        },
/ J+ Y" S4 F0 ]# L0 f$ m2 q- g: _$ }};* [( M8 K- g" P' V5 N
2 [: a& G# k) ]9 z$ `" h' V
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {" B: z7 r: u. V5 O
        .leds = da850_evm_tl_leds,
. w$ z1 S  B2 m2 ?3 Q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- C4 I. e( _+ A$ j/ Z. G# ?( ]( ~
};
& f5 a+ L4 [4 x4 i0 F. P: D" t8 t
; `1 W/ v, j  y( F: o1 pstatic void led_dev_release(struct device *dev), p+ U0 S# `2 ?- g& r' i
{5 T& W+ q  B% m7 G/ I" t- ~& |
};
5 [; m* p" K' Y' j/ b0 O: i) s1 |2 w# Z. X! l
static struct platform_device da850_evm_tl_leds_device = {
8 w/ ~- a: U6 V& {. E6 `        .name                = "leds-gpio",& z3 p  j+ x" M. w* Y2 D5 V5 @
        .id                = 1," K, ?4 c2 g8 U
        .dev = {% y/ L1 s) q9 D' b" r
                .platform_data = &da850_evm_tl_leds_pdata,
; P7 c- u* z3 H$ D1 d1 u                .release = led_dev_release,
3 Z2 Z) z% C' ~8 i2 W5 T        }7 \& G4 @& }' G  a
};
0 R' P; A% e4 K! f* j- A
8 U) L- ^: u6 G9 D2 s+ estatic int __init led_platform_init(void)
5 Z% H( E2 u% N. D. O; W{; U; g! [* i& Z$ N
        int ret;
/ L# R! U) n6 q- q#if 0, K, _' W0 w. G, X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 S5 Z: I: k) w6 }  q# u        if (ret)2 l! u8 g* a/ Q3 a; A: {* v& b- `6 d
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( b( Z% b: r/ Q# f/ H) j
                                "%d\n", ret);3 H9 u% ]4 l/ j
#endif% a$ G) T! G4 R) W) B( x+ X* S, ]- _
        ret = platform_device_register(&da850_evm_tl_leds_device);
6 n; g5 h% x- x  r: y( @$ X0 @        if (ret)4 f  ~0 s/ [6 W# P/ S1 K
                pr_warning("Could not register som GPIO expander LEDS");
, P0 C" q# v' }$ |- z3 Q3 ^. k        else
, k( T6 ^3 {2 n% y                printk(KERN_INFO "LED register sucessful!\n");  ^" \$ ~8 i/ h' E$ S3 d
' `2 L. Q2 C' K3 p4 K
        return ret;
! j. O# C) m9 c. u8 y" x+ H2 y# }}
( K% |, E+ |7 `  x( E1 Y& P
# p0 \& E- e9 q+ x. J. d, ystatic void __exit led_platform_exit(void)
( L: Q# T5 A( m& h* H3 N{
9 c& w; R7 S5 r, O% C        platform_device_unregister(&da850_evm_tl_leds_device);
* c$ T, f2 X" b( c# T! ]' K# X' k* h
. C9 E! p2 s" d) Z$ x        printk(KERN_INFO "LED unregister!\n");$ M& \3 n' X. u; s, M1 B
}
9 ^7 m, C5 J4 ~- z% d% Z, z: j9 ^* \6 k+ Y6 q! b* X
module_init(led_platform_init);4 `( P5 ^6 u% T5 n( B
module_exit(led_platform_exit);4 d$ L& S0 N  s4 v/ R- B% V( h. K! A
& k0 k+ ~: `9 F3 w: T
MODULE_DESCRIPTION("Led platform driver");8 Z3 I3 j6 n' z. M, Q; l+ ]$ M
MODULE_AUTHOR("Tronlong");
# I4 Q7 s5 ~- Q' `  ^8 X9 [MODULE_LICENSE("GPL");
3 m9 W4 g  i1 I, X3 V$ J* ^% v# d( u# m: B0 e3 D1 U9 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-21 17:17 , Processed in 0.038602 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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