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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 I# i9 @2 ^6 l8 F: [$ W
#include <linux/init.h>
; l2 H& v5 V' E1 r9 w  |0 C' F; a#include <linux/module.h>3 V, X' L2 w& a7 Q
#include <linux/kernel.h>
: W; t* w4 F5 {9 x#include <linux/types.h>, \/ K8 M7 v4 m9 T
#include <linux/gpio.h>; s( Z  x- G+ J% }
#include <linux/leds.h>
' M5 O8 }% }1 i* @1 w( I( h#include <linux/platform_device.h>
0 [% e- g  @! C; b5 L# ^6 b' ]
$ w9 V% X& I, H( w- p: j#include <asm/mach-types.h># r4 {; k! b* v: K; L
#include <asm/mach/arch.h>
' {! u+ t( L1 G( N& A1 T2 J#include <mach/da8xx.h>9 D* D* f! Z; \. ~
#include <mach/mux.h>7 \' D; b  t7 e% v

- J* l% w8 E1 ~$ O4 M  J/ K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)' \* |% [, s1 D; k% B8 m
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ e+ L0 m% X$ W% a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)# g( X4 N8 q- ~5 m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2). j2 F" i' e4 t' r- p& |

: z( o4 j0 O+ v/ ~/* assign the tl som board LED-GPIOs*/$ f+ r1 l- _2 J2 A! q+ K& Y
static const short da850_evm_tl_user_led_pins[] = {) y- k/ H2 M2 R7 }- @" v9 A- N
        /* These pins are definition at <mach/mux.h> file */
; R2 f1 [4 V& O5 j# b1 x) u        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5," T2 J) H0 t8 s! K$ A
        -1
9 s3 @. I- S5 V( d};
7 _+ j+ [% B. _0 _9 ^1 v/ w3 y# Q' X) z/ D( c+ f$ ]. @
static struct gpio_led da850_evm_tl_leds[] = {8 a5 B9 D0 N" s. c% J! i5 A% J0 N. C
        {/ u" `# ?8 S, m+ h( N7 |' I
                .active_low = 0,
# l* `2 c9 f7 |. r4 l2 f                .gpio = DA850_USER_LED0,- I0 X4 c! [" W6 Z
                .name = "user_led0",! O* \) a' f1 U6 @
                .default_trigger = "default-on",
9 j( [) o2 h( a        },8 Q5 i* }$ G( ^9 ~5 ]
        {
6 f/ O: {1 ~+ s                .active_low = 0,' E( e! n. _; C6 f7 C# ]
                .gpio = DA850_USER_LED1,& z( |! z; ^) j' q
                .name = "user_led1",3 [! m0 G& E9 @* ?) w  q
                .default_trigger = "default-on",
/ x# a5 p- J' }- }        },0 ^8 w7 k$ D+ u" r6 `0 r2 g- E
        {
' H. C! |' d7 v, M) r  v2 s                .active_low = 0,
! B  G& v& x+ X5 L                .gpio = DA850_USER_LED2,
" v. c) a3 R) E' C) L! B                .name = "user_led2",
; r' o, R  X0 O. k( t. p                .default_trigger = "default-on",+ y( U) `0 Q1 M( f+ o
        },0 i- E/ U) x' L
        {
0 E, E4 K8 \/ H# `                .active_low = 0,
+ u9 n3 q: t5 r) _$ d2 i7 x                .gpio = DA850_USER_LED3,* }* P% K) ^9 p" F- O* U$ c8 U
                .name = "user_led3",) b9 J! V; K5 _4 B' x
                .default_trigger = "default-on",
6 w# ]3 u% n+ c3 I- Q! s        },/ Z. c. |% F* M
};% _, q- j" x; H, k4 ?  S
4 h% ~; @8 o. }- }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* U$ K4 M, }2 b2 \
        .leds = da850_evm_tl_leds,
8 l0 J+ h3 U4 m3 W, W) ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),; I. r; k( k6 r( }$ {& k  ^
};. i  b" h; {& l5 c& T% r
* Q; h: M1 R! Z
static void led_dev_release(struct device *dev)- b0 S+ X* n" v8 I6 E) ^
{. s8 O  l# z& q& X! U) v' f& [
};) g+ b* A0 u9 g5 X- x1 |

3 R9 v; }: {9 ^6 Q$ r. V3 e2 a' h' D$ zstatic struct platform_device da850_evm_tl_leds_device = {
" W, D* o# C' E  J$ R+ A2 q        .name                = "leds-gpio",9 ?) r3 E5 N9 z( w# ?
        .id                = 1,
) E5 D* |) y" d% K7 J/ U& Z        .dev = {
$ ?# f8 m+ R7 k; Y; K                .platform_data = &da850_evm_tl_leds_pdata,
4 C; M+ V! ]" x                .release = led_dev_release,
( l# {* h  w: e* @4 c" X: o. w  z        }
! v; _& j# ]' j8 J+ A};
* v  J& r& E( t, z( |2 E/ {) o5 v' D9 O6 w0 z. A4 [
static int __init led_platform_init(void)" Q( t9 S# |( q5 ~9 S) S
{2 F( a# Z4 B6 E' Z5 f8 S
        int ret;0 F7 }% x8 i" ?! n3 q8 ]0 L( P
#if 0
' B0 x; X6 `5 N# J        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* a7 h# c8 w$ |3 E7 b* x
        if (ret)- e; |/ F+ ]+ C! K1 m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( w" [$ t% A* ?8 h8 O; s2 u                                "%d\n", ret);& \  Y: ~7 `; b2 Z; _  U- T
#endif& W3 ~' S+ D, n& ~$ W: _) z3 v9 F
        ret = platform_device_register(&da850_evm_tl_leds_device);
& {: w& [% X: Q. k. U# i7 I        if (ret)
7 |  j7 d. a; ~# d7 B9 J& X" J                pr_warning("Could not register som GPIO expander LEDS");6 Z! g0 [7 w. l% e- n
        else
# x6 F& l, a& t: I7 q6 A2 W  G( u2 c( i                printk(KERN_INFO "LED register sucessful!\n");
# X! L  A# m# K0 C6 l; T+ X. N2 A
        return ret;
7 l+ L7 u6 y0 l. G}. R& ]! I8 ]( Y; A. t  Q( [

- \) f& v! j% X* P9 {static void __exit led_platform_exit(void)6 X. z; C6 F' N0 p  l7 k! R
{
" T7 W4 {# m4 G' Q        platform_device_unregister(&da850_evm_tl_leds_device);4 y! @3 N+ G3 t. g4 K' I5 w# U

- d8 m# v" ]: f$ e        printk(KERN_INFO "LED unregister!\n");
: @8 Q$ [! Z3 y$ z! Q; E5 f. D}
, `4 l3 A& q: S' J" o0 ~3 S% `- r" K$ u6 b
module_init(led_platform_init);
% a, A4 r- x; J4 _module_exit(led_platform_exit);) h  R) B5 ]$ k7 ~' n
% ~! K3 W% ?" v, j8 l4 i
MODULE_DESCRIPTION("Led platform driver");( Q& C# [: E; U
MODULE_AUTHOR("Tronlong");
, t% _$ j. X7 RMODULE_LICENSE("GPL");
# z4 Z1 n8 }- Z, `- }1 e6 N/ q8 E; ]; t& f+ d% F/ F, X
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 08:53 , Processed in 0.040098 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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