程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# C, n  i' d. T: Q( |#include <linux/init.h>
9 x0 x% D$ m3 Q  @" y#include <linux/module.h>6 w9 k' c* Z, @5 O
#include <linux/kernel.h>* [7 B7 u. u* ^
#include <linux/types.h>
; [6 z8 P, `0 |5 z- \#include <linux/gpio.h>
! {. y9 x% k7 H4 f#include <linux/leds.h>
2 B) l; ^  h7 m8 t9 S#include <linux/platform_device.h>- P$ |% u5 e  O; K7 o; ~/ r
3 T4 ?, l% F8 t9 q, Q  p, S. `
#include <asm/mach-types.h>
3 z7 Z( [8 A% P7 W#include <asm/mach/arch.h>
6 `7 }. r$ x0 u! W8 `! }; w$ B#include <mach/da8xx.h>
4 }9 X1 ^9 t, n& E/ ~6 f2 p#include <mach/mux.h>
" s* ?, P9 T# J9 i0 B
+ N. M' |- z6 p  F6 ]& o+ e8 }, R#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 r2 ]. p8 ]4 w5 i
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 n0 n: ]4 x" `! V, y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 R( \6 E0 \8 n" G- l; n- O! u/ z# Q
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
$ v; I$ b/ C, e7 S# o% o* Y0 ^6 e* Z( m% y5 i5 M: ]0 ?
/* assign the tl som board LED-GPIOs*/
7 {. y: b9 ]2 p0 sstatic const short da850_evm_tl_user_led_pins[] = {
% @# ^. a2 E* B' \" B8 Q( t        /* These pins are definition at <mach/mux.h> file */" Z7 m( |9 Q/ Q5 V& R  z
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# D" {) u0 K  M  i* w0 W" O, C        -1
$ d% f8 K8 X" u6 X0 l: N: a# D};
* N1 L! C% I# d" p5 O( H+ }/ @7 m; b2 w# I6 C$ J& Y
static struct gpio_led da850_evm_tl_leds[] = {3 @# I: F# B: }$ A  H+ k
        {
4 ^( b( e# v, }4 {: k- A                .active_low = 0,
" a! t8 W9 r+ d8 q! n+ k2 h3 n                .gpio = DA850_USER_LED0,! p' G: a% c' h9 p" x
                .name = "user_led0",% g4 w, U# U9 A+ k
                .default_trigger = "default-on",
' S5 K5 |, ~: }& V+ P) H        },$ E( Z: s; F8 Q
        {
4 U1 _' t5 _9 s/ Y                .active_low = 0,
* A4 K: p6 R5 }: V; t                .gpio = DA850_USER_LED1,$ _" Y/ l& ^% E0 [' b
                .name = "user_led1",
2 o( W7 y8 M9 f; w* |                .default_trigger = "default-on",
+ N/ U7 Y$ }3 S$ r$ w3 c        },
1 B1 d' _7 A3 p        {; [; e' J/ O9 m2 k( M3 W; \
                .active_low = 0,
/ d' o0 A2 K8 `                .gpio = DA850_USER_LED2,% Z6 A/ P/ a0 |& e8 P7 ^& V/ h
                .name = "user_led2",# r9 j4 ~: o3 }1 J4 C% t! Y
                .default_trigger = "default-on",
' _+ ]# S$ e( t4 h& \- }        },+ I$ H" ~; B* j* S
        {4 G& G/ _* e8 s# w* ?
                .active_low = 0,3 b) h# S5 Z8 H( k
                .gpio = DA850_USER_LED3,: R4 }/ E% [& Y  {/ [
                .name = "user_led3",! D: z# _4 t+ \- S7 E7 S& S6 y
                .default_trigger = "default-on",& _( m* L: J$ {0 V" N  T) _
        },; T2 W0 k! N- y
};9 \9 ^: C9 U8 ?$ C% g( ~7 T: p
7 F: c  z( ^6 L1 J8 p0 S  m8 ^
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 S' j9 T4 e2 S3 {( P        .leds = da850_evm_tl_leds,
1 K# @' g$ l8 L% o! J* W6 Q) ^        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 f" F& F8 g. b};
3 b' W( A; b7 I) S& I! m$ f. f
/ `# Z/ a. H5 R- H0 t* B8 y4 nstatic void led_dev_release(struct device *dev)4 `1 A$ V2 I; i$ l* G5 z% P
{) [% f, A/ R9 `# y
};$ @3 u- H+ S) n4 Y  J+ ]; z

  m) A2 P- u' T# Q8 t: ]. G. rstatic struct platform_device da850_evm_tl_leds_device = {4 o. s, U( m+ i, R4 Y. ^- u
        .name                = "leds-gpio",# g) N3 \+ V9 c, \! z0 u3 {
        .id                = 1,
. \" i/ |) R3 z5 F        .dev = {2 A, h. t/ B( u! g3 z: T
                .platform_data = &da850_evm_tl_leds_pdata,/ \4 N2 o% C( w7 S3 M) f
                .release = led_dev_release,
7 ^. W7 d6 b- J( R        }, q; Q5 p+ G0 i! p( g
};
2 _& Y# y' M: W6 |" B7 F% Y7 j: `) y
static int __init led_platform_init(void)
4 I' H* P( m9 E7 [6 ~1 Q5 g! S{
; g0 ~7 s8 b) e7 J6 V        int ret;
! ~# Z7 j" C& y$ y. W8 [#if 0( d+ k' d& n3 A3 R
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  d0 z5 ^! y- [4 }  i7 o
        if (ret)
" m5 n0 n& m) k- N2 f: C                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
' t: U1 `4 R/ N+ W. e5 j) L- L                                "%d\n", ret);1 R. r0 l; E3 k$ v9 `
#endif
: @2 V! w2 t$ q' ~        ret = platform_device_register(&da850_evm_tl_leds_device);: b/ k+ l7 u! I0 y
        if (ret)
( b9 A) u& y1 P" N6 S7 h3 w' X! d! l                pr_warning("Could not register som GPIO expander LEDS");" M' \/ o, z5 F9 y+ T
        else
! @+ G: Y& W5 j                printk(KERN_INFO "LED register sucessful!\n");
' C1 u4 z; G% Q, f' l& U. k2 U$ w
- b9 ~& _7 N) C        return ret;7 m' Q6 E' h6 C
}7 u7 K( P" E2 i0 X! ?

/ a% s6 y- Z* Y3 R& j4 Pstatic void __exit led_platform_exit(void)
5 a* y( A" Y. I% R7 o2 o{' O( K6 V. ~9 q( H. r& g. H! s
        platform_device_unregister(&da850_evm_tl_leds_device);# t1 Q; b  L5 l  \; E: {: E$ {
3 c8 G0 Y- d4 C+ f, c2 S: h
        printk(KERN_INFO "LED unregister!\n");- n# m1 w. z7 I7 n7 G# o
}
: E8 x0 Z- G  `" @0 s4 |6 ~8 ]8 J4 b! E! B- f+ Y) ]( I
module_init(led_platform_init);
- R7 s/ X8 h% C% E$ Vmodule_exit(led_platform_exit);: t2 ^7 g0 t; q6 I" ]/ L( Q4 S
1 d: _1 e* s- C+ r! I( }2 _
MODULE_DESCRIPTION("Led platform driver");9 |6 r  `- U' x0 X5 L2 e- G6 ^
MODULE_AUTHOR("Tronlong");- _9 ]7 s6 T2 \2 w1 ]7 g- Z
MODULE_LICENSE("GPL");! S; `" |/ z, _  ^. s5 v8 o- H

+ C0 r5 u7 G  ]0 L7 e3 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-3 14:56 , Processed in 0.038269 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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