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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; J+ M+ L3 Z" v7 B- K  P* Z7 P# ~
#include <linux/init.h>
, d2 ]; _3 t, `#include <linux/module.h>2 A( J, I# D+ `) Z! g$ G9 \% g  @
#include <linux/kernel.h>
0 {  S( z& z8 L8 t3 U$ x7 m5 Y" {#include <linux/types.h>6 Q7 S( z4 b, U8 ~
#include <linux/gpio.h>
3 [( Z' o7 }2 y) k4 f#include <linux/leds.h>: A8 ?( [  Q; A# u/ G3 l; e
#include <linux/platform_device.h>. m: I  f4 G4 d  O$ J
. w1 F( K. \' P
#include <asm/mach-types.h>( e5 Y7 b: {3 }8 U. T$ S. y* k
#include <asm/mach/arch.h>) W( v/ l7 I$ K- h2 k( W: e. h
#include <mach/da8xx.h>
! [5 j9 ~5 S! Q/ }* U#include <mach/mux.h>
/ b* \& {. r) Z8 ?$ ^) g6 W1 B6 f% k' j3 x% [
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, q/ [! J/ u3 T+ @! k5 u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)( F5 k1 G/ ~! l# J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" w" n& R2 Y" V1 x0 Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ E! T. r+ i3 o7 a% `
9 \. V4 T& a8 S/ ?/* assign the tl som board LED-GPIOs*/( y4 O* ^! t8 n# T% H7 G+ M
static const short da850_evm_tl_user_led_pins[] = {
; E1 g% B" D9 o$ |% ]        /* These pins are definition at <mach/mux.h> file */9 W1 D) d7 \% r& U+ e3 L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# E  S9 T1 Q2 W' i. A        -1( a3 |/ b5 e) U( f5 C  Y' J
};4 `/ \' z' E% [7 O5 u* A; _1 v
) b: N& S, c# \6 P
static struct gpio_led da850_evm_tl_leds[] = {- D3 y$ X: n/ I
        {( h6 }6 `3 b8 ^. Y" b
                .active_low = 0,+ @% @' w4 @4 s( e$ k% B" B
                .gpio = DA850_USER_LED0,
& W8 V3 K6 O! h% B% r3 t" @; f                .name = "user_led0",
0 k  w* u  K6 R* ^7 {+ Y                .default_trigger = "default-on",6 ?& N1 I/ \5 t4 u9 I. D
        },
' ]- w+ e9 f" b1 p6 w% ^3 |7 u% _  ~        {* h' ], C, Q: ~) Q. T
                .active_low = 0,
* v. \3 ^9 @' O0 D) a; p+ q9 V                .gpio = DA850_USER_LED1,  _* w4 C2 q9 X
                .name = "user_led1",. N; U/ T: [8 V
                .default_trigger = "default-on",
- F  c2 d) @! X5 W  v% s. s        },! H" `. ^% y" V, U' S  b
        {0 r, T+ e7 ?" \4 L0 z: Y& C, o9 e: ~' w
                .active_low = 0,: D+ K& Y7 }: N2 \
                .gpio = DA850_USER_LED2,3 O" q( p! x+ c; ^$ W
                .name = "user_led2",$ D4 S8 Q& Y. H9 z0 I$ s0 p- q
                .default_trigger = "default-on",* c+ A7 j9 S5 V5 \! b# g
        },
4 I- J0 o6 {# r+ F4 p7 J        {6 X2 j9 c% F- F' r
                .active_low = 0,- ~: `6 s3 W! s$ f& t# Y
                .gpio = DA850_USER_LED3,$ v0 K9 i) \6 X. Q8 m9 n% C5 A& `
                .name = "user_led3",/ L' N: m2 N* [5 y
                .default_trigger = "default-on",
7 v6 @: W- M; z2 V        },- U$ o$ W, Y: j
};
' F& g7 S' I/ g, Z; W/ w1 A
$ V$ y! ?" t! c+ K+ d3 h3 mstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {5 b3 h8 d9 K3 g% D
        .leds = da850_evm_tl_leds,/ k( V# C0 O# y! }9 g
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 x3 }( [8 J+ D# K/ l$ E# l
};7 ~0 F3 D8 y+ ~1 I

: S- {& B* w3 nstatic void led_dev_release(struct device *dev)
% c) a5 M. d8 N- b! P0 k* @1 D{
9 p6 w# G. Q6 a) T! n};
- h1 J2 F7 }  W" Z) y" Z
, P% E8 d5 B( _- ~( Zstatic struct platform_device da850_evm_tl_leds_device = {; y4 B/ E- c, L+ A, f# r% i! S! U
        .name                = "leds-gpio",9 W% l5 q6 v1 e
        .id                = 1,
: `; t) N9 I/ J        .dev = {" V5 }' P, Y- q4 ?% I# W
                .platform_data = &da850_evm_tl_leds_pdata,; S$ T6 V, Q3 `) K' p4 }
                .release = led_dev_release,$ w' m) K5 @. b9 ^" s( E
        }
5 T+ R* d. a6 _) Q2 Z: ~' C};
$ e7 Y+ g  B' r9 Z2 u8 K" s* \  J' B( t2 A
1 W' r) Q9 g/ m' astatic int __init led_platform_init(void)9 E- }- r  x0 t$ a8 ~; G2 c
{
: o0 D& y" Q/ Q% T" H$ ~        int ret;
+ H6 y* j4 ^5 D1 q4 Q6 f& E5 L#if 0' p1 F& U: k: }% A* I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% x- ?) Q- h! z- e1 w, {" `
        if (ret)
. }1 N# b. M  @- Y' l5 d( r                pr_warning("da850_evm_tl_leds_init : User LED mux failed :") o3 Y0 T) X( r3 H$ U0 \7 X
                                "%d\n", ret);
% K" [3 i+ ~, j7 M4 `#endif- i* b' y! C3 A
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 L4 {! m& @+ j$ X. C2 P        if (ret)
: \8 `) n7 S6 k' A. f8 M1 J6 U                pr_warning("Could not register som GPIO expander LEDS");- R* r- I0 w6 E! p
        else4 x9 u. ?8 Z; J) a+ l7 S: D
                printk(KERN_INFO "LED register sucessful!\n");
% ?6 b; q% q' ]; D
" e. f0 c; R; a        return ret;
3 ?$ p$ H/ ^# A& m! ^. C}
& l5 y; L; d2 e' k; F* y2 }9 L2 V2 v. X, H( R& e
static void __exit led_platform_exit(void)8 z8 g% N( |6 d+ C1 W$ T/ z0 D9 z
{8 F  d2 Y8 i. C  i
        platform_device_unregister(&da850_evm_tl_leds_device);. f2 I) y* Z$ O# W

' ^4 s- k: L9 S4 N5 K$ D        printk(KERN_INFO "LED unregister!\n");
1 t1 w4 j) {3 N2 }: _: ~}2 ]% A5 {  b0 q

2 O, _, \( r! Q6 t9 {4 K' O- H4 G/ Omodule_init(led_platform_init);( g6 a+ [9 {6 Y; v' Y
module_exit(led_platform_exit);
4 q2 H- _' J5 j" }) j* P+ v! _1 d! J! I5 }4 T
MODULE_DESCRIPTION("Led platform driver");& q# G& V- {/ p
MODULE_AUTHOR("Tronlong");# w0 d8 X& B9 i  Z* F' I
MODULE_LICENSE("GPL");8 @- w$ p- ]3 p, P/ R
+ n) V% t* q( J
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 14:04 , Processed in 0.075856 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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