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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
& M6 W$ l2 \6 p" x/ d#include <linux/init.h>4 o* g& V" J& w- T7 p. W. b  V& q
#include <linux/module.h>
7 V1 n6 n8 g- B! C* \#include <linux/kernel.h>2 K2 l9 d; f" ~* e
#include <linux/types.h>3 O! c. o# }( N% r8 ^7 l
#include <linux/gpio.h>$ X% i7 q* v1 v  U- N* C/ `- E+ x
#include <linux/leds.h>) b8 Y0 k) q4 U# d( @2 @# k
#include <linux/platform_device.h>
! N0 m$ E0 q; `/ k  g1 H: n
7 p2 G+ \8 E# L' A% e5 x% ^#include <asm/mach-types.h>
6 b: ~7 z0 E: u#include <asm/mach/arch.h>  m4 W9 }5 L3 H& S
#include <mach/da8xx.h>5 _1 [5 G( `( S# Y
#include <mach/mux.h>
! g5 E2 s- d. A! g3 a
! b1 r( v. ^  y1 O; h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 n9 v  }: ~/ H! t. J#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' S$ ]# F8 _0 D
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ U" S7 _# P% l7 F( B( v#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) o4 S- {+ P& i4 d5 L

4 ?1 |# i* T% i+ p8 F/* assign the tl som board LED-GPIOs*/  I+ X) J( {4 \4 `& o
static const short da850_evm_tl_user_led_pins[] = {% ~; k3 l' p( P& ]
        /* These pins are definition at <mach/mux.h> file */. [% ]* t4 B. `  [, V) n9 P
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* ?7 n2 r0 _& Z. q+ B! C
        -19 h) K) V/ ^6 ~. W
};% t3 `$ @- P; E! J$ ~9 q
0 \8 S! @2 s0 q5 ?8 p6 x
static struct gpio_led da850_evm_tl_leds[] = {
% x4 e6 A* g+ q# V$ r' T" d        {
3 a: ]: B- q8 Z                .active_low = 0,
$ d4 _3 f/ w7 C& A6 x; c                .gpio = DA850_USER_LED0,$ m: I8 r7 u2 b, F; q  B
                .name = "user_led0",
# q- A2 R2 O7 _) }; w1 A                .default_trigger = "default-on",
# y3 n5 b" x$ u5 B        },
: D2 a& J: K8 T6 _9 Q9 w2 H1 b3 l        {$ w: L6 C5 a0 |; L
                .active_low = 0,* w8 N* j- p, Y# F8 ~3 w: _
                .gpio = DA850_USER_LED1,
! Z. @' ], V! H% t+ i                .name = "user_led1",1 a3 h" V1 E1 `2 I' d3 j- _
                .default_trigger = "default-on",, F7 [* g5 x; M
        },
+ x1 X# i9 G- [4 i        {
$ Q( f# l' ~& V* @& y+ K                .active_low = 0,
" u" q- Q2 L( I: G/ [1 E                .gpio = DA850_USER_LED2,8 \3 b% V& m5 I9 K
                .name = "user_led2",# i3 h0 C3 b$ M% ?! U8 D& _
                .default_trigger = "default-on",1 j% E$ J6 k% P' W  Y- u9 T
        },' L. I$ A5 H+ Q3 y
        {
' c; h' }0 h+ w" z7 C! w; s8 o& q/ U                .active_low = 0,
6 q1 I1 s+ W: H$ G( i                .gpio = DA850_USER_LED3,5 i: [3 f( j* z# f  }
                .name = "user_led3",/ V0 E* E. e  D  ]( W9 y1 l. A
                .default_trigger = "default-on",
# M, T. n5 ?) \( |- J        }," W: T" _) v) Q2 ?! `9 I) |
};
# m( c8 }6 E; L, G/ X, `. w, Y- [/ b  N
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% e* y* s% q) I8 e        .leds = da850_evm_tl_leds,
* |7 c6 `( e2 v6 |0 {  \9 S2 V( [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 I5 z6 t* f. u  Z/ I( `
};
* @% F7 H; ?6 Z+ ^1 d: |
1 R# I$ @3 l  y! Q9 O/ e4 Ostatic void led_dev_release(struct device *dev)
. B4 t4 i3 o* ?; ]4 \* P{- H9 R. P9 F- {: B
};" b8 K; F( I) z) n' S) ^6 L
4 D2 f9 P! k  S8 r7 L  q+ @
static struct platform_device da850_evm_tl_leds_device = {# N0 @+ I! V+ N* r' T8 }
        .name                = "leds-gpio",
& R' x- `" O7 H        .id                = 1,5 O6 Q. \8 z. g( c# `
        .dev = {
9 H5 @) G4 C9 S" v1 v0 z  s* |3 P3 K                .platform_data = &da850_evm_tl_leds_pdata,
5 d$ |1 M1 Q/ U0 e                .release = led_dev_release,
% Y# v/ x: l6 \9 K1 Q- \7 W; U: `        }! L0 ?9 e" M8 z
};
, m; ]! ~, @  Q; g# _( X
8 |2 w' e( m5 ?% }7 e: p- wstatic int __init led_platform_init(void)$ N0 `# i$ A( K4 H; n: z) f1 y2 y! p
{" G- w4 b2 u0 |. {; G0 S! `) Y! }
        int ret;
5 o1 u" W7 O8 d. j  z, i/ L3 z#if 0
0 ~7 B7 x5 H3 v7 L        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 z, H* \- f, S
        if (ret)( W" ^' }9 Q. V6 C* |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 N+ U. U  G7 s0 F/ h+ j7 D                                "%d\n", ret);
" e( R: Y  B  p! R#endif
  c- T5 K4 y* d; \        ret = platform_device_register(&da850_evm_tl_leds_device);" ]* `3 s. a# X0 o3 A+ g
        if (ret)
6 A! S3 z( {& |* x! J7 Q8 j                pr_warning("Could not register som GPIO expander LEDS");
8 f. z% b$ u4 M; G6 l: |        else. s2 }8 w* z+ ~# |# d. i" ]
                printk(KERN_INFO "LED register sucessful!\n");
0 w6 _- l% {/ G3 J
/ g$ l8 O2 L  U; W/ T# s% b# x! l        return ret;1 Z( E: T- v) x$ \
}
5 d4 ?/ O/ P6 D/ r
5 |1 w+ ]. A  p9 q6 G  dstatic void __exit led_platform_exit(void)/ b& n; ^$ H  m+ m
{
1 n- R3 C* m& m5 I: c        platform_device_unregister(&da850_evm_tl_leds_device);' C4 _5 a2 S/ x# [' \2 E
; h! k; D$ V8 Z- m  X) q7 H1 e( c7 _
        printk(KERN_INFO "LED unregister!\n");
# ]' Z7 ?$ N9 u& r& p}* G/ [# a! c1 v# }  ^
5 L0 [& `( d) Y# s( ]6 I
module_init(led_platform_init);
4 K! A5 V/ m' pmodule_exit(led_platform_exit);! J4 N% M% {3 N* F
6 N9 J" ?& Y6 `" B% [
MODULE_DESCRIPTION("Led platform driver");
' I! i+ G% c' w: u+ |6 H. i9 Z; ~MODULE_AUTHOR("Tronlong");
5 A6 B* P6 b3 V( _MODULE_LICENSE("GPL");; \% _; V; [$ G8 q

4 e( `/ R8 _2 I# k- y( B* a" V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 11:07 , Processed in 0.048391 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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