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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。& P2 C$ R, l( l! x4 t! U
#include <linux/init.h>6 R# R! A; [% M( I8 K
#include <linux/module.h>4 |, B* B7 C2 q) q+ }. d0 E5 U3 a
#include <linux/kernel.h>" M( e; P* A" [$ }' u8 c6 V
#include <linux/types.h>
% X. L$ b* L9 U* ~+ [6 t#include <linux/gpio.h>: v! o* m- y9 p  k  d
#include <linux/leds.h>, ^$ K; L0 }9 @4 h, a4 J
#include <linux/platform_device.h>2 V3 B6 l0 w" v8 O( A9 n% i
" y1 U3 x8 V# [
#include <asm/mach-types.h>
, Y; J$ K( B9 ~#include <asm/mach/arch.h>. Z* I8 W; q8 q8 N5 a0 i8 G& B; S
#include <mach/da8xx.h>
) P0 ^& k+ P1 Z. C0 N0 j- y#include <mach/mux.h>
/ E! v1 q& I+ d+ @
- o  O/ d( m$ |- H2 h( [/ c#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 a8 {+ n7 G* m#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" a" x% {$ Y  ^( W8 m& w9 d( I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ y$ [0 D) v5 ^% r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)4 g, q5 O' N0 Y! g
0 H: H! h! ^8 o. |( X
/* assign the tl som board LED-GPIOs*/9 a$ S0 b  x- |' H
static const short da850_evm_tl_user_led_pins[] = {
. l. x% q* ^  _& b) h, N. c. I        /* These pins are definition at <mach/mux.h> file */
5 G0 k$ s2 S* O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
% S: T9 t* I; L0 a8 H: \        -1
! Q( G* B# Y3 p};
  F% Q- v- K5 a! o2 f8 c3 Y, _( H6 c; U9 Q: F) i* Y* r$ {( B% C
static struct gpio_led da850_evm_tl_leds[] = {% U! K; K2 l( G) H
        {, m% ~4 X, O) |% Q' W9 K
                .active_low = 0,$ P5 m8 K. Q+ ^$ G0 o
                .gpio = DA850_USER_LED0,) A% W+ W7 z0 T. d2 z1 `
                .name = "user_led0",9 c( V: C/ d) j+ b! U
                .default_trigger = "default-on",) O8 J. g0 P$ d
        },
/ E6 U, U( J9 H        {0 j6 }) }2 [+ d% i
                .active_low = 0,6 M  J  d5 }. Z9 W5 l! u
                .gpio = DA850_USER_LED1,
! S! |6 D- c' S! _                .name = "user_led1",$ \1 X) W+ ?4 E# G& i
                .default_trigger = "default-on",1 x1 V3 G& [# s
        },
- J+ p' Q% X% A8 z- w2 x- I+ ?        {
3 M2 I. X% c% w- z$ e                .active_low = 0,
3 H3 V- b# ^! O; B                .gpio = DA850_USER_LED2,
8 k& d3 j/ A2 _, l% |                .name = "user_led2",( c7 D+ h& \# N( d% ]
                .default_trigger = "default-on",7 ]6 I3 D( e- |- r' Q3 N
        },. m+ G0 G, X2 z9 C/ h: N' R
        {
; S9 P0 p' I1 F- M0 R# `                .active_low = 0,9 N# Q" V# s3 C" I& ?9 g
                .gpio = DA850_USER_LED3,, [0 v- A; D9 J. w( O3 g
                .name = "user_led3"," ^& C6 w/ g$ c* T
                .default_trigger = "default-on",* U8 c) \1 H' a; g  m! V4 v
        },
% S- {7 @& l( D( v};
. z/ K, v* B! h4 ^" E$ q/ V+ m, g9 Q4 Y2 \* o7 N# S* t2 _
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 U( |0 q+ Z0 x- w# E! y3 k
        .leds = da850_evm_tl_leds,
% f$ D& Q# a: \0 l1 z- A2 P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
& V! p" ?6 I* A0 o};
5 d0 v0 U# ^9 V5 }$ w1 z8 c% j- z; g$ J5 I' {8 P2 @
static void led_dev_release(struct device *dev)) N# j4 @9 S3 x# U3 k! Z
{9 N/ s- Z! j, b& q  w0 [
};3 V; X2 L0 {; z7 j) W& ~
2 B7 s: O" R' t8 |  T: \
static struct platform_device da850_evm_tl_leds_device = {
1 |$ L9 B6 x3 e        .name                = "leds-gpio",/ R1 Y3 i7 n, \. i
        .id                = 1,
5 R$ r! m% ]$ O1 r; n        .dev = {0 g8 o  V6 h+ Z
                .platform_data = &da850_evm_tl_leds_pdata,- X( \: T  P6 f; a& l0 A
                .release = led_dev_release,
3 ~" h2 q$ ^* J) b7 b' y        }2 N5 r5 U$ `9 S7 ~0 F
};
" X+ e; u# P7 N1 ^3 I8 H
/ q* T) l0 a8 ]8 s1 g  v7 cstatic int __init led_platform_init(void)/ V: K+ R4 [$ c" M3 I7 D6 V  w
{5 i' L' M; f# v% A8 m: [) s5 P/ D" K
        int ret;/ [0 Z2 K9 m' I  r; y, v7 ~
#if 04 u& G# u2 M$ F9 J& C1 H/ p
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 H5 O" U* U9 Z        if (ret); Y  G  h2 D& H" T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# D( L! J# O9 @8 Y* J9 f6 T
                                "%d\n", ret);
/ o' }3 b- G( K$ c) N#endif
* n8 C1 S& F9 B$ A; u        ret = platform_device_register(&da850_evm_tl_leds_device);
9 D! R1 m& O& J) s/ L/ b  M        if (ret)
0 o; C4 ~/ ]0 V. Q& Y7 \2 I4 W                pr_warning("Could not register som GPIO expander LEDS");7 N2 `) C- C6 o
        else
( n1 O. d# t, q  m' I                printk(KERN_INFO "LED register sucessful!\n");: a+ _) e- I! W+ O( u* L
! Z. S' E/ w" `3 I0 y
        return ret;
/ K, V/ S* v" u. z' A}
8 M" w" u6 A& N3 i. ?$ v1 V$ }; t3 e. s
static void __exit led_platform_exit(void)
  K. W7 B% y4 R2 _" Z{
2 Q  n, D) g" M1 {0 M        platform_device_unregister(&da850_evm_tl_leds_device);
  c4 T$ s$ [- U6 B2 m* W$ Q- S$ _
5 n( @/ i' s% e        printk(KERN_INFO "LED unregister!\n");& N( h  }/ r$ A" I( s2 X
}  J- d* p' u) `8 S: r( G

5 b) y8 r# ?  Cmodule_init(led_platform_init);" {+ I* r+ n/ k' P
module_exit(led_platform_exit);
4 `3 a9 ]; O1 k0 `5 b- r& k  p6 ]- s: k& D/ a- V
MODULE_DESCRIPTION("Led platform driver");
+ F1 y% M1 f# s! |2 T: `MODULE_AUTHOR("Tronlong");; U: G, b4 `! T  d
MODULE_LICENSE("GPL");. T) y8 a: y8 S; [5 M# ~- Y6 X

) H7 K6 z. \3 P! L
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 02:15 , Processed in 0.043529 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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