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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* T1 `2 C5 c2 U( o; _  _9 U#include <linux/init.h># R9 H: W; P! O
#include <linux/module.h>; z/ [& O2 G/ Z8 Z
#include <linux/kernel.h>
0 G. B% @, e9 ?. I: J#include <linux/types.h>* F# g- q( @% _6 v
#include <linux/gpio.h>
$ \7 d; z2 _7 e$ g5 @9 o$ {#include <linux/leds.h>; I8 x$ e& q# z9 K+ |" y
#include <linux/platform_device.h>; _3 ^  X) l; F9 X/ B" S
5 c7 {" r3 d* |. _% K! |- @" m
#include <asm/mach-types.h>5 l0 b0 J- [2 _% W2 d/ A
#include <asm/mach/arch.h>
0 q& c3 {$ I& O#include <mach/da8xx.h>
% z$ Z& ~5 i" m6 `) j- B#include <mach/mux.h>8 }. y1 `0 r3 N" S2 ?; h) A( D: a

) P2 e+ |9 Y1 f6 Y: x5 _. ~  D#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# ~* D7 ]) t9 Q# A1 @6 U: [; i* _
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& d5 x$ A( J0 S- [3 d: r
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& _' j- ~" a" B" `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) H! B' P1 R* J( x* X: V& [- Z5 P- ]
/* assign the tl som board LED-GPIOs*/
0 i* q" w$ l7 g! K8 E8 Q, }static const short da850_evm_tl_user_led_pins[] = {
; r2 C6 \/ B$ x# W& Z# W+ _# J        /* These pins are definition at <mach/mux.h> file *// T& j  d' [- s- {! X; K
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 I- @. o+ t* j/ \        -1
2 ^5 f5 j: o3 J; }+ p3 }8 q; k$ j};
, }& ~6 |& E# I
% O( s5 H8 m; `: h" s1 c& Q& G$ Dstatic struct gpio_led da850_evm_tl_leds[] = {
: z/ o6 U2 \6 U: M! g& Y        {9 b, b; e* Y% Z
                .active_low = 0,1 N, E5 g5 h* ^) m; Z4 d
                .gpio = DA850_USER_LED0,% |$ Z5 u8 C0 z* |
                .name = "user_led0",
5 z& [% g' i' ^7 X  P2 R9 a9 W                .default_trigger = "default-on",
, H" o3 o9 y5 d, G3 n3 w# s9 w        },6 e5 `: z2 B& m) h* |$ ]! |  {
        {
/ i7 J5 P! |6 n! c% o# @- p" f4 k+ G                .active_low = 0,
2 J+ j" Y* H, Y% Y3 ?0 F& @                .gpio = DA850_USER_LED1,2 Z' [( z1 ^, f
                .name = "user_led1",
" ^2 i  [" U. F" y: I                .default_trigger = "default-on",* G& E$ h) [7 P' h- K* X
        },  i6 u6 v- O. ?7 J
        {
' v: I) |  e- R$ m                .active_low = 0,
; _  {: G% _4 \7 T. [                .gpio = DA850_USER_LED2," N+ Y/ G8 G0 S5 `* W2 f: _
                .name = "user_led2",
( ^  r: F+ E0 v                .default_trigger = "default-on",
+ P- a3 N4 \1 e1 M7 O# a, ^6 M4 H4 j        },
. C7 s3 a) S+ _9 r1 W        {% O( _8 h/ Q' L7 B% Q
                .active_low = 0,3 c! j" w5 I1 n2 K7 ~
                .gpio = DA850_USER_LED3,: y6 q, p9 B% u* j0 s$ m
                .name = "user_led3",& C" ]" j4 T6 I! E
                .default_trigger = "default-on",
( f: y4 i& ~( W9 `        },
( U8 h3 v0 W. J5 ?& h};
) @0 B# s$ R' ^3 h/ D, S$ X6 ]1 `4 W4 R; o0 O. C" Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 _% p# {; W- b2 X# j
        .leds = da850_evm_tl_leds,
1 Q0 Q7 ?8 [! x7 B8 r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 o5 Q- g  |. ]* g};
- s" ]3 H8 p. B$ C$ @* Y& Q7 t$ k: C* L6 s3 B) t
static void led_dev_release(struct device *dev)
1 D9 o$ x" I  K3 Z9 E{+ Z+ \& S/ F, h! q( W+ e( L
};
' ?7 O" X0 L* p8 ?! b
( c1 U( F; f& G$ Pstatic struct platform_device da850_evm_tl_leds_device = {
9 P5 c$ h  R4 {5 m        .name                = "leds-gpio",% T1 ?( |( \: d/ F7 @" r
        .id                = 1,. t9 K( Y' a" m7 {3 P' M2 {2 S0 v
        .dev = {
. ~; O) z7 w9 T( \5 D: v' s( ]: V                .platform_data = &da850_evm_tl_leds_pdata,2 U* t3 V- u  r' F
                .release = led_dev_release,
( e( A. V: Z8 k$ {: {        }
$ u0 t. E# p1 e8 c% q, {) S};
* W5 g/ l/ W& b" y( m* e1 \8 i9 G4 b
static int __init led_platform_init(void)
) A9 g  |! U6 v* f{# `* [' f: X7 s  f
        int ret;
$ H# F( B7 I! k2 i7 p. Q6 `/ E#if 0
6 n/ ]$ ^, t! E- P# M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" d- P2 h, l7 Z- Y3 V" c! ]5 U
        if (ret)
# X( f6 Y' S) q: I. F- U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
  w5 a5 d& \/ p2 V' n) U' r  e                                "%d\n", ret);
1 A7 C; B4 d4 l7 W" n3 J#endif
! w, ^2 H% I/ O: i        ret = platform_device_register(&da850_evm_tl_leds_device);: M' X5 z+ }, b$ F; Q' K# w
        if (ret)# Z! M& z- r1 d; w4 d) T* S
                pr_warning("Could not register som GPIO expander LEDS");
& i7 `( k- j& m2 G# G3 m0 i        else
/ h; |/ W7 s2 S# S2 |" h                printk(KERN_INFO "LED register sucessful!\n");' s# b: Z) q' Y4 k
2 K2 q3 z( Y5 a) Z( s
        return ret;% T' N  G6 E( s8 w) x" n( Q
}+ q3 @& @4 B( b- {

/ t- P* U( g0 Lstatic void __exit led_platform_exit(void)
" D, {+ L) M4 {5 H+ B# j4 h- T{7 P' B9 K3 t" c6 S7 C) A. C
        platform_device_unregister(&da850_evm_tl_leds_device);! j8 z! o; y, k+ H' h& }
9 D7 B) D* G' R
        printk(KERN_INFO "LED unregister!\n");3 m* [# R% V, @0 W% }( H7 h- X
}
5 S- R. i) \  i* N
( V  I7 w0 G) S+ C. Dmodule_init(led_platform_init);6 c) y7 X' ~5 S+ `" L* F. p
module_exit(led_platform_exit);0 d2 Y1 K* V- [* ^
" u7 |) f6 c4 E$ T
MODULE_DESCRIPTION("Led platform driver");
5 _7 F1 g. ]% j% _MODULE_AUTHOR("Tronlong");
" |' S& @+ e  {; n( M: F9 Z# bMODULE_LICENSE("GPL");
# q) L- H" y7 b$ R+ v8 M$ I
* _3 G" Y( O1 F. @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-23 04:03 , Processed in 0.041062 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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