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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 L. U5 w' q% i7 b9 t+ n- h8 s- J) u
#include <linux/init.h>
. h6 P/ ?" B" @8 Y#include <linux/module.h>$ v2 K5 }6 D3 Y  C% x
#include <linux/kernel.h>
0 J9 \3 B- N$ `#include <linux/types.h>' A) O- F4 G& V& ]9 y% I! Q
#include <linux/gpio.h>; C' O& a# E- Z, r8 Z
#include <linux/leds.h>- [; h7 z+ h( B! P! T4 t! }! C/ G8 H
#include <linux/platform_device.h>( G% Y- b2 c) M4 D2 r

4 E9 K2 s& A: U#include <asm/mach-types.h>
/ t. d% f: u7 \#include <asm/mach/arch.h>
: @9 A. i: Q2 s  e#include <mach/da8xx.h>
7 q" r: Y& U$ t3 U7 f#include <mach/mux.h>4 ^- Z4 v, B: m+ c8 w- s8 |5 q3 R

$ Q8 G& H" U0 |& Q- g#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
1 d0 \1 d' u+ F5 v2 Z3 o/ v#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 v) V8 J: T5 V5 w+ V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
9 P5 c. B3 F* y* b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 m& s' B! a, W! N* b2 I9 d

! e8 h9 o9 i6 G8 g$ }3 {* I# Z% u/* assign the tl som board LED-GPIOs*/. [3 K$ J. g4 W  l2 @/ o
static const short da850_evm_tl_user_led_pins[] = {4 y. L% ?  D- B- f
        /* These pins are definition at <mach/mux.h> file */' V" @+ a' t( J4 f3 f' H* Z1 c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
: T. f1 P# m! W9 x- A" z. a/ g        -1
0 a3 j0 A& J2 a  a5 b! `0 d};
' T0 v. u% ?% n8 g5 x' w6 N: Y* Z; J6 a- |* ?3 r
static struct gpio_led da850_evm_tl_leds[] = {
# `1 Y. {6 w3 R+ @        {
" s* o) `% n. ~4 i                .active_low = 0,
) e" X- }7 n2 T7 g1 B                .gpio = DA850_USER_LED0,& F+ X. K9 t: @) s9 F7 q- t, }. w0 C
                .name = "user_led0",( i/ Q: h+ h& c+ i- X, \1 o& _9 y
                .default_trigger = "default-on",& v8 M2 @* u  O& o8 P! _
        },
) z. j1 a1 B4 N+ o, f; X        {
6 M' v' l1 d1 ^7 j9 [; z                .active_low = 0,7 Q6 d( z/ X2 Q
                .gpio = DA850_USER_LED1,
6 e( q( r% h) s* g5 \                .name = "user_led1",- j% }0 G9 P& ?) ]( x
                .default_trigger = "default-on",
; h3 i$ C2 V4 j        },
0 T9 o. J! t/ F: a/ W& H: [8 g        {! c  w. m- g% {, E; x, u! W
                .active_low = 0,! J, W# q4 c% S& g; Z! n
                .gpio = DA850_USER_LED2,
" n8 h7 Z- d7 ~$ \8 X& ~) m                .name = "user_led2",% M+ N. t9 N0 ^0 q2 P" Z
                .default_trigger = "default-on",9 f! c: }: X, x  w9 x3 G
        },8 C; x- M4 l. h' |. Q, F6 B: Q/ O( Z
        {2 l8 [6 F1 _( o0 C% ^. D% Y: g
                .active_low = 0,
7 }/ r, e4 q: P9 W! u$ i                .gpio = DA850_USER_LED3,9 W" f: N1 R  `/ p4 n) `
                .name = "user_led3",
/ d" r  A1 _0 \4 Q                .default_trigger = "default-on",+ [, I  \; a" }. b+ b! V
        },* C5 [5 z4 n) Z& s- y7 \. S+ J
};- [/ F$ V5 g, [- Q) N; p
" v$ P: r7 V6 W1 F
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {2 p" B' ^; X7 B/ \
        .leds = da850_evm_tl_leds,) I2 V- y/ [" e3 Q
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 _$ O, p7 f1 X. u4 v
};1 s/ c7 l4 v  R- H

# B6 f3 P4 d: n* I( l  G  @7 k& m" lstatic void led_dev_release(struct device *dev)* b% C& C9 t1 q/ X
{
! [) q- _; u& B9 N* j) o};
! U4 K& K6 N3 Z4 T. v
+ ~1 c: E- U4 ?; xstatic struct platform_device da850_evm_tl_leds_device = {
% W- i$ G2 w& D8 T. ]9 s# q        .name                = "leds-gpio",  T  j+ Z3 o+ S" z9 J
        .id                = 1,
3 r: b1 W2 m# d$ M- G        .dev = {9 |5 F) b3 m" x8 h/ r
                .platform_data = &da850_evm_tl_leds_pdata,
6 S* x) b1 ~% k/ r3 W: g, A                .release = led_dev_release,+ v+ p" Y1 F9 |0 v- w
        }9 m: r) s# l* [" i$ g' H1 i$ g
};
; l3 S: q, j- m
7 M. w$ f" C( N& {; \& z( Lstatic int __init led_platform_init(void)
9 U& m& B: S( M3 W  K. M0 J. L{5 L- G4 r3 n% j3 i; E- Z5 v: [. q# ~
        int ret;, Q. ]! {% p2 i: T5 C5 r
#if 0) U& v8 `# N0 w& u& K) ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. B8 K# f" c' R/ i        if (ret)  X4 D& D' R- a1 Z: Q, O9 n
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ F' [, e  |5 H0 g& j: t
                                "%d\n", ret);5 U. i5 j/ m( |2 }
#endif& W# L- z, [) A& v" Y
        ret = platform_device_register(&da850_evm_tl_leds_device);
9 j: Y$ \" J1 n5 [        if (ret)5 a5 T" K  p1 z& _! l6 i0 T
                pr_warning("Could not register som GPIO expander LEDS");
5 `9 |- [) Y# A* _+ ~2 {$ x        else
) C" s$ U9 G$ A$ i9 _                printk(KERN_INFO "LED register sucessful!\n");
6 h7 b# J$ s' Y" F! z4 H! j# N& T9 U  c- _
        return ret;
. S* i+ X( M& z+ `" B# f}9 g) z9 p- t% u* c4 U
" `6 r# H- }) i3 G
static void __exit led_platform_exit(void)8 z* U& S8 V4 ?( y! ]7 S
{
. \7 |6 e  H$ w+ j        platform_device_unregister(&da850_evm_tl_leds_device);
! y0 n' V- v( D. s8 \9 s2 B+ b
7 u2 i. d* w+ @$ k( z" c( I        printk(KERN_INFO "LED unregister!\n");8 G) ]% ~+ l5 j: r6 l
}
" |- N% u' C1 a: y" B: q3 D! ^" X2 q
module_init(led_platform_init);
* P6 I' B# H) L! Lmodule_exit(led_platform_exit);
1 `8 R# P0 p, g  D) o3 j, x+ e1 }4 H. p  K( W
MODULE_DESCRIPTION("Led platform driver");
2 L! n  u6 z5 U5 uMODULE_AUTHOR("Tronlong");/ t* w% z+ D  ]) ]- \5 k
MODULE_LICENSE("GPL");9 t7 r2 O! k, v# u

6 M; i1 ?9 a% K3 R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 05:58 , Processed in 0.038806 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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