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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% R( a$ P. H* R- l: U
#include <linux/init.h>$ a, x7 \# g" _- ^6 R% R( `/ W
#include <linux/module.h>; P6 P' M8 M+ w4 F) N
#include <linux/kernel.h>0 G4 Q9 H5 V1 k3 J2 n9 b' H
#include <linux/types.h>) H5 N! y, g0 [& F0 D+ z1 c
#include <linux/gpio.h>
: W* z1 G5 |3 P+ J) S#include <linux/leds.h>
6 V3 n) Y$ a4 F4 v5 Q- [! @, G- `#include <linux/platform_device.h>
. m$ o6 K( E- A) w# Q! b7 _1 q
# u7 n1 N# J0 @2 U; b" {4 r#include <asm/mach-types.h>$ G! n  N' f) l& J
#include <asm/mach/arch.h>
8 j( o$ ^, w7 ~- g#include <mach/da8xx.h>' h; g2 l8 \2 E% j; b' @
#include <mach/mux.h>
, J+ W! s& Y3 m; e1 m3 k$ j6 ~+ L: `8 Z6 Q7 T
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 j5 x/ I# z( d: ?  g5 V2 n" T1 z$ b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% F8 r3 Y. d( n' v1 m0 h#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)2 T" N- w8 w, T0 x8 P6 `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% Z. [* J2 d( E
9 ?7 y' ?4 z" Q+ ?- G+ k2 A7 I
/* assign the tl som board LED-GPIOs*/8 M0 E# c( R1 q% m
static const short da850_evm_tl_user_led_pins[] = {
' G* {) A; _$ D        /* These pins are definition at <mach/mux.h> file */% t, j* J) q0 w6 ]' x6 L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 i5 e- L4 G' u" a! _8 e# q% T$ x        -1* y) I. v, N8 x
};- E; t& z) J0 j9 V& X  W
2 j) H9 n6 W* @
static struct gpio_led da850_evm_tl_leds[] = {
1 Z5 {6 k, l; f8 p; q  T& h" O& f        {
, ^; l& b3 ^( q0 R5 ?                .active_low = 0,& f  ~: b' e! t: x$ o* c  y
                .gpio = DA850_USER_LED0,
( n: C' z: S1 ?1 o3 f+ c7 W5 \! S                .name = "user_led0",
& w1 V+ S( r9 r0 Q* L$ y0 W2 c                .default_trigger = "default-on",
4 f5 O8 J# C7 w, b8 l4 S) b        },- P% H+ n. W, U. {5 U7 `! ]
        {; M& @2 l- h% u! R1 V4 r, J
                .active_low = 0,2 _5 b5 b4 c1 y9 n  I. r
                .gpio = DA850_USER_LED1,# J2 O6 m" |5 L9 U; X% n1 L
                .name = "user_led1",/ C# C) i% Q# @) F. V6 }5 W2 I  J) y' z
                .default_trigger = "default-on",
5 y) t/ _$ v0 q0 t9 Z' F( t        },( t9 s2 J% o  ?5 i; l' w
        {/ ?4 c- C+ J; M
                .active_low = 0,
1 q) p/ P; Z# ~' X                .gpio = DA850_USER_LED2,
+ H+ _2 Q  \) O3 ^( b                .name = "user_led2",
) m$ T9 W( ?. s, K                .default_trigger = "default-on",% _; F4 P1 a. N7 n4 s! ?
        },
/ v: G7 f6 b  ~' l        {
: A# p5 r1 |* t, F0 v  z                .active_low = 0,7 y2 C. G% Y, F  M# e
                .gpio = DA850_USER_LED3,
$ _) g- V+ e( e/ s2 @) H  T                .name = "user_led3",
& @' _6 A. }$ q* K. d4 M                .default_trigger = "default-on",
; n* W, O3 P' [1 W2 ^        },' X7 I* ]6 X7 a" c. ~7 O
};: c0 W1 W$ G/ j: I

! S+ A" P# k/ y' Z& v2 H. g7 fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {  y' z; N. V9 S4 [0 x
        .leds = da850_evm_tl_leds,
; ^$ N7 P; m" n4 J" Z6 ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  o# r1 L5 j, j$ r1 X% y
};1 y# h$ \6 K- u6 X
1 Y$ z. S" l) q7 M7 E0 g
static void led_dev_release(struct device *dev)$ |; Q3 h0 Q- M  V
{% H0 F$ l/ Y! F. i; `# R! e
};
3 r9 B* N, N1 b" u! r% T% i! ~- l
. s% g& }  e- Y/ Hstatic struct platform_device da850_evm_tl_leds_device = {/ W$ b9 \% u- ^& \) m
        .name                = "leds-gpio",* D' s' }+ G, N. Q
        .id                = 1,
. e" R/ M1 B. Y2 i* \        .dev = {
: ]) b7 e( J; h0 t0 y1 n: p                .platform_data = &da850_evm_tl_leds_pdata,
) @5 j5 f- u- ]* W$ m' A6 U4 E% z                .release = led_dev_release,
$ q* r3 K! [" ?% `4 S1 {! B5 i1 \, k        }
# ^( o' V. v0 K" ?};1 X- x3 Z7 y% H2 w& F

0 M; R: e  g1 h% U2 ~1 K3 sstatic int __init led_platform_init(void)1 x+ X1 K( R& D9 E9 d. n' X& y
{
, ~# y! {4 a3 _; W9 y, B        int ret;1 ]2 m. T/ w6 r5 B
#if 0  o9 n8 R9 Z* z! h0 P: j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! L" S& X5 \) D; O
        if (ret)
8 b* P2 M4 k0 b6 G: Y* u7 W- @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"3 l+ l& i* R5 c1 @6 J1 B; e3 a5 f
                                "%d\n", ret);
) K1 F* g* O! F4 K" Y#endif
) [, T  C  \9 @: T, ^        ret = platform_device_register(&da850_evm_tl_leds_device);
1 Z2 K% s% E( b7 z" h" O! _4 v& d( n        if (ret)2 C% V& O  U  h% n
                pr_warning("Could not register som GPIO expander LEDS");
$ p# D- o: I. y1 s  g1 L        else+ G: Z9 E, i* B, s
                printk(KERN_INFO "LED register sucessful!\n");
* O% j* X4 t0 S! d, g3 G$ y& U1 A  ^# w
        return ret;9 t$ M8 E# ^+ `: O; P' d
}
5 E8 T; D: j( ^* s, L. g, ^" i2 z. S2 {, {8 C2 A2 t
static void __exit led_platform_exit(void)
* F# u- G; i5 L2 `) m$ g% D- x- ^{
# [5 i6 u  k5 ?& v        platform_device_unregister(&da850_evm_tl_leds_device);
/ S- @3 A% z/ ~, r: t7 q3 W
! x' P5 l6 p  A$ H* Z        printk(KERN_INFO "LED unregister!\n");: |( j& |" g/ t7 M! }2 f# f3 x
}& U7 o0 R/ ^4 [; m0 U4 R$ y2 x0 i) L( d

1 y+ Y( `: V0 q$ q. Hmodule_init(led_platform_init);
% i% Q  W( W: _$ D5 A) ~module_exit(led_platform_exit);0 G5 Y, I( ^. v6 F7 [
& B% \2 t' N9 `- p# ?  H4 v9 G
MODULE_DESCRIPTION("Led platform driver");* c6 w; Q) ^/ J" C; T
MODULE_AUTHOR("Tronlong");0 p; ]. L; K. F1 p
MODULE_LICENSE("GPL");
" y. p) m1 \! D7 H1 N  ~
7 U7 ]' |! t% v. z" z: K8 A2 S+ \4 Z+ u
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 16:52 , Processed in 0.038072 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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