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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ R: n' `+ s. k$ H#include <linux/init.h>
9 K( H7 ?; v. N" w% M& t* |4 s: H#include <linux/module.h>
. }: j" x( p  e, \6 C5 a6 y, j#include <linux/kernel.h>4 P' z9 G; w1 [* j& G5 L8 X
#include <linux/types.h>; ^* s& y3 e4 d8 _: R  L
#include <linux/gpio.h>2 m/ c8 w" ?5 L1 v) w2 @
#include <linux/leds.h>( X$ Q* r4 L0 i/ q& a) ^# t  }
#include <linux/platform_device.h>; V8 ~# ~1 c" C/ Z# ^( v- U% g( [/ }
" @. p, D6 G, Q5 c7 f
#include <asm/mach-types.h>
: h: v- e' z" Y, D! u" N2 U# u#include <asm/mach/arch.h>+ D3 J) H+ t" B9 g5 i
#include <mach/da8xx.h>
7 c5 a+ G$ Z: |, r" k#include <mach/mux.h>4 g4 N. z8 T2 y* ]) Z

; i# B3 G9 g9 _5 K#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% W, \& [% U; H- }
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
3 V8 j! d6 L1 N7 W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
% Z4 W! X3 E6 z8 X6 N# m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 z' J7 }3 r% y" q
/ K, l) S# r5 I4 ]
/* assign the tl som board LED-GPIOs*/& L- f8 k/ }2 S, q1 M* Y3 v9 D
static const short da850_evm_tl_user_led_pins[] = {
4 M: `0 v0 ~7 _* b        /* These pins are definition at <mach/mux.h> file */
  a, @& Z' v& v: D        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 P0 h; [1 ^; ~+ i& I: H# ^  E        -17 T( E7 K9 U4 E5 c3 u
};
5 g* s- _6 u6 @/ y/ k& G% K' {& t/ t/ ?) G9 z: `6 t
static struct gpio_led da850_evm_tl_leds[] = {5 {' s7 ^9 K1 q0 W8 X
        {% g) |" {: t4 B8 [# c* Y
                .active_low = 0,2 d! G2 b! h4 z1 }8 `& S9 j
                .gpio = DA850_USER_LED0,2 j" W& \' d) u8 g) \! C' s% R: g
                .name = "user_led0",
+ B4 E* B5 O/ W  b* c                .default_trigger = "default-on",
; Z2 x- L# @+ g        },
- ?4 J, }% [0 W        {2 J* w3 u3 T; ?5 [, E
                .active_low = 0,
1 o5 B4 s$ d' i) \6 {                .gpio = DA850_USER_LED1,4 g5 h5 P' u3 Y
                .name = "user_led1",  A) G/ I1 f; F' Q4 D
                .default_trigger = "default-on",- a" h, G8 N' x3 F- |
        },- V. f6 D2 z. l$ |' g; M
        {5 s7 \+ L# k( ^: K) K) E! J( K
                .active_low = 0,
- E! u0 F2 i7 K                .gpio = DA850_USER_LED2,. g3 R. i" `6 K( x
                .name = "user_led2",
' H5 e; p* W5 {. [0 b                .default_trigger = "default-on",8 @. b9 a# O3 f' c' P  U
        },; {2 }/ W5 W! M) O' Y1 v
        {# M2 ?# i; l5 i1 F2 D- o8 k
                .active_low = 0,
$ `/ o$ q' g  w# Z                .gpio = DA850_USER_LED3,- j! ^# v8 D: G( l$ F. H! E1 |
                .name = "user_led3",
0 D; S& t( V9 S  c+ A% A                .default_trigger = "default-on",
% n8 h, F9 }' s+ W        },
) `5 Y9 H/ r! s; p, {* ?. p};
# [$ U* z+ @& ]# `3 r3 P6 j6 M6 J3 r+ S1 }
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 p5 T0 ~! T( T
        .leds = da850_evm_tl_leds,/ ~! @5 B% T6 M. H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 W3 _# b. q% T4 |' }5 x2 W& f+ ]" b/ W};* W( [2 k$ W5 E% `; d) _$ b2 z/ G

" P- _9 m6 }% T& Y7 N9 Bstatic void led_dev_release(struct device *dev)- _; D& t8 H+ u1 J& _; ~  D
{  ]8 G4 \3 Y5 t* m. {- s
};
4 e3 M% x- ]3 ]" r- G# s4 _
4 l* F+ h. \& P3 ?& Y5 L$ Dstatic struct platform_device da850_evm_tl_leds_device = {
/ F7 s3 y; J* q8 `        .name                = "leds-gpio",
& d( o: E) q$ b/ ?- Y% T  [' C        .id                = 1,3 r: C6 n  A! Y5 C
        .dev = {
! p7 e# i' Q3 g0 ]9 i6 D! O                .platform_data = &da850_evm_tl_leds_pdata,
$ J. D% ?* x5 Y% ]0 g, T# Z                .release = led_dev_release,
+ z: B! r/ G* H7 N2 s/ ?2 L( X        }4 x" S/ ^' ]$ F' r9 V  F' T
};3 w: g  E+ p, r7 @

; L' W/ B( q9 Ostatic int __init led_platform_init(void)
2 J  M  J: E, q0 o" O1 c{3 C8 q# d2 i/ N' C0 ^3 L) p
        int ret;& e4 U$ ^9 ~$ k5 D
#if 0
! \; E1 M* a( e& v# o        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);$ i( d- `( g) v* ]% z) }/ r  B
        if (ret)
" ^: U8 k% s, x+ L& D1 N                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
% e/ e9 w, a# j7 S0 x                                "%d\n", ret);
/ s! j1 ~; b+ ^- f" J3 J3 {: a#endif
6 q5 M6 J2 \" T' B! `" c, V        ret = platform_device_register(&da850_evm_tl_leds_device);
7 ?1 z8 K, W& |. [9 T2 A        if (ret)$ u0 M' v9 H3 Z# w
                pr_warning("Could not register som GPIO expander LEDS");
3 C, ]) C. H  [2 X! T        else
* u) }; c- N5 [$ i9 c                printk(KERN_INFO "LED register sucessful!\n");/ E8 W$ z$ Z/ o; b+ X& Z

8 t, p' p1 f; @/ o' v        return ret;7 N9 R8 Y& m: z* u& b7 @
}* K+ q7 w, f: L7 t' Y- {4 b

; M! ?% \' T- \) ^5 l8 F8 ^0 m& estatic void __exit led_platform_exit(void)
( s, _0 R+ C5 @3 V{
9 f* W9 W0 B! ?1 M        platform_device_unregister(&da850_evm_tl_leds_device);- y2 Q# d' V! v& S0 Q  m9 T2 d
+ h$ h. d) y5 S% F+ Y
        printk(KERN_INFO "LED unregister!\n");; O1 k0 h% m' {  F3 J. @
}
9 A- d6 \" o2 ^
4 C8 r: P8 y! W  V  ^/ B5 i% Emodule_init(led_platform_init);: P! D( Z' }0 J( X# H4 ~  C7 Q! ?
module_exit(led_platform_exit);
4 b1 t+ ~! o: X% o# {4 j1 s# \: _: p% H0 x! d3 @- o% J
MODULE_DESCRIPTION("Led platform driver");3 S1 E" F9 ?( D0 @
MODULE_AUTHOR("Tronlong");
: K% [, Z' K# M* XMODULE_LICENSE("GPL");; k8 m+ C1 m- q5 G. l

' P1 e' u* s  F( h% n
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-19 08:00 , Processed in 0.039275 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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