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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 H' t  j) Q5 J8 ]
#include <linux/init.h>1 h" p# q0 V7 s  U
#include <linux/module.h>
- S. b& A, B, z- ?#include <linux/kernel.h>/ ^6 A' \; X. p; B
#include <linux/types.h>
; v( M8 l4 s9 A* ?, G3 V: q#include <linux/gpio.h>
. b( d/ r; Y# B- V) m! A#include <linux/leds.h>
3 _% T. U, g& O5 n#include <linux/platform_device.h>- p3 q9 w# e# |9 \2 X
6 z" C/ r2 P4 O, W
#include <asm/mach-types.h>; M' r  U' y& R( ~0 f
#include <asm/mach/arch.h>5 N( g' d4 J/ C" o5 H2 u! J
#include <mach/da8xx.h>
( k7 N$ w* j7 C3 D#include <mach/mux.h>
8 ^3 ^  h6 a6 e* O  @+ j
  L4 N& G6 ~7 `2 D9 y( a#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); [# @+ \/ s0 h- |' r; C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5). x% t' p1 N% [* Z0 v3 N0 ?6 ?
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). m9 `- S; A! V1 S3 }- h4 h
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  [3 m4 @6 p. b9 G7 a  b, m5 I# L0 t( B
/* assign the tl som board LED-GPIOs*/  O! B* z, O3 I, B  @5 {, `5 E
static const short da850_evm_tl_user_led_pins[] = {0 g, c* M- T2 t$ r/ d* k
        /* These pins are definition at <mach/mux.h> file */
4 f- p' l: A2 b7 o- T/ S+ ]6 B$ n  N3 m        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 t% t1 z" X6 W" y! d
        -1
  _* @  Y! j( c. {: C; {0 S};
6 x  C) z$ X. L" z/ I# G
: j4 w/ s" P6 ]& ]9 _static struct gpio_led da850_evm_tl_leds[] = {
4 ]: I+ \  B- k0 ]        {
8 X. o  Y$ h& j' `. O' M                .active_low = 0,6 ?( Y  I, \" l7 u: }
                .gpio = DA850_USER_LED0,. C# R2 R7 F; W* H
                .name = "user_led0",8 ^" W3 ~' L' C" |: a* [
                .default_trigger = "default-on",/ e& f0 c" V1 `# [# |5 Y3 ~9 s
        },* A7 l* h' F0 U' ]* @& n
        {
5 h0 g8 D3 ~: O                .active_low = 0,
  q5 Z% h0 |. T. [0 _                .gpio = DA850_USER_LED1,; _: C& o3 B1 N
                .name = "user_led1",
$ ~, `2 _1 t; ^" @) m                .default_trigger = "default-on",( e. x: b, r8 ?7 E, u/ g5 X! r* G
        },/ q6 }5 q8 d$ t/ f8 |" Y
        {
( z- k! A. E9 m9 x; F% y  s- @- }: I: T                .active_low = 0,
; x& C. G+ F+ K' `8 P. E9 ^: O                .gpio = DA850_USER_LED2,- C6 P7 ^0 A( i% _# i$ I
                .name = "user_led2",4 c; L  K7 u3 }
                .default_trigger = "default-on",
* r) g. Q) L1 J, t6 y. [) M        },
3 n( e7 @6 _! ^% ]% ^4 P, n        {
& m, {9 P) T& ?, L# @$ o8 N- ~                .active_low = 0,% v! X) \5 S  r; \- f; N1 Q
                .gpio = DA850_USER_LED3,
. G  y- o4 P! q2 V                .name = "user_led3",2 L( ~* Y% j' h  v: p
                .default_trigger = "default-on",. E5 w; S9 O2 c
        },% j& c, ^* }# q9 c6 x& ~; D9 U1 m
};
8 @1 i4 W% ?+ B9 A. k) i( B; w/ d# y: q/ ~2 s$ i6 h! c1 |
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* ?0 m: o( J$ Q4 r
        .leds = da850_evm_tl_leds,
6 Y$ }; ~( |  X3 J3 R  o% j% y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( O/ l! U  S5 o" f
};
6 D- f( i+ O% K- n+ [4 v# w- O+ h+ n* v, E5 V% h$ D
static void led_dev_release(struct device *dev)/ x* i* P3 b& V3 T3 h. g7 Z0 [
{
; G2 b6 ~5 ]6 q0 H1 b% _7 o};
. G% X4 a  w+ Y% J7 R6 _9 _- K, ]; W* Y- b/ Q% w" T
static struct platform_device da850_evm_tl_leds_device = {
) a2 |/ s0 b( {; n7 |& e0 m        .name                = "leds-gpio",$ i4 u. b: L9 ~
        .id                = 1,
( j5 \# k& q, c        .dev = {
4 W( Q3 `3 K4 [% Z  ^6 c2 k                .platform_data = &da850_evm_tl_leds_pdata,- c# ^/ ^" w) M- m& B
                .release = led_dev_release,6 V5 [& Z/ m! N6 }! s9 c# L6 n; k# }
        }
0 ~0 R! S& Q# j6 \$ A1 b9 G2 `2 ?};
+ }% \0 F  z- B0 S5 ~3 `% l9 Q$ e
static int __init led_platform_init(void)
% z3 [& f5 D4 m" n5 C& S  A6 C! ]{
/ m/ M& R- L% R1 |% {        int ret;
  {5 A+ c: A- F' S#if 0( k, `5 G0 p; |- X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 |. `: t6 f; k. b- P2 M% B% w
        if (ret)
* s- h0 K! E6 i* {8 S7 n% g7 v                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 h# ]) K& [/ u# O2 I
                                "%d\n", ret);/ n/ s9 H% v4 `  S
#endif) V. ~* j9 q+ k- C+ z5 C
        ret = platform_device_register(&da850_evm_tl_leds_device);2 I/ X, l+ F+ g6 S! y; p
        if (ret)( X5 y' E1 `1 K6 ~9 _/ y+ U; U8 y. ~& A
                pr_warning("Could not register som GPIO expander LEDS");+ m% y6 c( \2 [
        else! `1 t1 C% ~8 @4 t4 r& E; H
                printk(KERN_INFO "LED register sucessful!\n");' u$ }7 N% {% T& D8 j" G

3 ?; q3 C9 B- h2 e        return ret;
: o# @" q; ]# \}
0 q/ M; H. ?9 ]  K0 ]0 J- O( f2 m7 [, h4 h: _% g8 T. T( J
static void __exit led_platform_exit(void)" r" ~9 S  ~# W# i2 Z( F
{+ n9 Q3 p/ m0 K( W7 w
        platform_device_unregister(&da850_evm_tl_leds_device);
3 D; i/ J! F' F! d& H5 ^
3 ?. U* r. R4 U1 {( g; l" o        printk(KERN_INFO "LED unregister!\n");, W  Y) {! G7 X8 f" K. q
}
* }0 d: g) Q: G5 p* H! r
. I. N$ {' R6 _& T: zmodule_init(led_platform_init);
- Q5 c' l5 v. L' q/ J$ Fmodule_exit(led_platform_exit);3 N/ [# a% N. \: J' Y! |

# L5 n" I: S# @! p$ r5 {) oMODULE_DESCRIPTION("Led platform driver");: c& L" I8 c: P! r- c4 o
MODULE_AUTHOR("Tronlong");' x) S0 G# B+ s7 @& T. z! h
MODULE_LICENSE("GPL");
$ z0 p' M, L3 t. z  l4 S: o/ k: n  j1 v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 00:29 , Processed in 0.046900 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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