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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 G5 R0 X9 |" {) t
#include <linux/init.h>! x! F( e% w7 k2 n
#include <linux/module.h>5 p" v8 I$ u: s
#include <linux/kernel.h>
6 ]/ q( e$ e6 x, F4 f! s#include <linux/types.h>. u# d; H. F; Y' D* J
#include <linux/gpio.h>
& W, _9 E$ S/ ?) Y7 L$ [#include <linux/leds.h>
/ T9 T, ^4 G; g% X6 w7 Z5 f, S#include <linux/platform_device.h>1 {6 L. A( z. ~" }/ d

2 |4 u% K3 y4 r. P5 N9 C" J% `#include <asm/mach-types.h>& g5 S! X2 y) u, h0 t! w0 n4 u
#include <asm/mach/arch.h>$ _/ i# o: b; q; ^# w) h1 e
#include <mach/da8xx.h>
1 M1 ~# N7 i! V$ z#include <mach/mux.h>
  D, h0 [7 v2 @, ?) T' z* b/ Q, P3 y' L1 N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). K0 W) [* W" T' |5 N( L
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
# C* k8 @1 J1 N/ C4 {' l+ D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 V2 x% a% ^! f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 x  G4 a0 S7 F( T" Z
* I3 S. {% S. u' U
/* assign the tl som board LED-GPIOs*// ]) S' `$ d) S' b
static const short da850_evm_tl_user_led_pins[] = {
& j1 d' X; l! X8 L, V& [        /* These pins are definition at <mach/mux.h> file */
- j& N% T! e+ y, b! c" G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,% S* _0 ?9 \9 [5 ], M
        -1
2 D/ t7 @( x- ^3 C' O+ D9 C: L};
: J- t) v  o2 U# c
1 S4 W; ^/ k3 A/ Q6 b1 ustatic struct gpio_led da850_evm_tl_leds[] = {
- ?" L0 F8 n8 K+ {5 l        {) A8 n' C* s8 Y) Z- H& [( h1 _2 k
                .active_low = 0,$ o6 \: ~1 `+ W
                .gpio = DA850_USER_LED0,
: p8 ]4 D$ v- y- H4 v2 v3 C4 t                .name = "user_led0",
+ M6 q/ b! S; ^" ]$ }; S! y                .default_trigger = "default-on",! B0 Y, |  J: v9 K6 `3 F7 u: T& y
        },
1 y( y- z5 [% z: R6 w; s' u        {
& o1 T6 ^9 H, q- z. X                .active_low = 0,, E3 d# {6 t& C& ^4 w2 t7 X$ o1 K! L3 K
                .gpio = DA850_USER_LED1,
) K4 o3 B) I* Q, S) V' ^8 d% H5 a                .name = "user_led1",) h; d2 }/ u8 ?3 v+ @
                .default_trigger = "default-on",1 R  C! d. W/ \5 x; v
        },3 C8 E. G$ z, k
        {
4 y! O4 ^2 J( d( C                .active_low = 0,& v; }: }% ]5 T$ K' a! {
                .gpio = DA850_USER_LED2,* c5 g# o& F, k6 A& y" X
                .name = "user_led2"," Q# V7 H" i" ]+ i5 p
                .default_trigger = "default-on",
6 y# v" |% ~% m4 u        },
$ c. q; T* ]+ R/ ^3 v$ m. Q% _  P) ^        {
6 M9 U7 S2 @) g! G                .active_low = 0,0 Y8 P: i$ A0 o0 B" X: i
                .gpio = DA850_USER_LED3,
4 Z& O, K; n# v                .name = "user_led3",
6 P8 p  v% N/ |0 I4 S5 A# M6 w0 v                .default_trigger = "default-on",
8 E9 g- u! P+ J& y* z8 c        },
7 j) l2 j& W. M};
% w. b, n) D! H* @. _- |: ]( s; w$ L. H% k
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
( i8 [' R7 J. t* a$ }% @        .leds = da850_evm_tl_leds,
6 X/ |; w, ~% B3 l8 S$ |        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, g/ R/ I! ^( u4 Y};
$ s( W! L( v+ x& o7 j: O) r! g" r1 S- N! M, j% X
static void led_dev_release(struct device *dev)
1 b% c8 j! ^! V1 P0 a{, x2 l! i: g& o' p7 {0 n8 P
};
5 M5 j) ^6 P/ Q+ `& Y  b3 Q, U
: U: b3 S" F6 Y( r3 H7 Qstatic struct platform_device da850_evm_tl_leds_device = {
& u4 i0 @7 u7 P. }- Z: J        .name                = "leds-gpio",! h/ L6 t1 p# d6 K2 D0 B
        .id                = 1,; ?( I. x; T' h. m0 t! k
        .dev = {1 n) }9 A) O7 h3 ?2 l  h# J
                .platform_data = &da850_evm_tl_leds_pdata,& A& L% W# C3 L4 r) j
                .release = led_dev_release,
$ j5 N# k6 ^- w, _; l        }2 }6 V" q0 g6 Q* C: \
};
* Z7 J1 V# _: a
6 K0 `( `5 u& I( Q; B. X5 s+ u  T5 Lstatic int __init led_platform_init(void)& P& R" ~, ]5 T( s/ M
{) s3 d4 \* U; C7 A. L
        int ret;
9 s: k& l, y$ T3 \  b4 i  h#if 0  j% C2 v: N( N& q; o" d
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);' z3 `/ V' s6 d
        if (ret)! e+ e) U; x5 T* a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"( U# P& v+ V9 Y  O' ~2 a
                                "%d\n", ret);
. o( ]( g& u9 m#endif
  I/ G  s1 l3 _* l- s* z( K* c) y        ret = platform_device_register(&da850_evm_tl_leds_device);4 w/ O( x% e1 B& M. {# D
        if (ret)) ]2 A! \2 D0 F" W  d( @
                pr_warning("Could not register som GPIO expander LEDS");
/ ?- [$ w) x" Q        else% k; S4 E- C5 G
                printk(KERN_INFO "LED register sucessful!\n");. n1 Q4 E' m& Q) M. v) \. X
: d) {0 v! J$ d, t2 y
        return ret;
: ?  P3 C/ D+ ?9 K8 \}# @! M$ n! d% @  e/ l' ]

5 R$ @7 Q1 S1 L! h% T- u6 K' {static void __exit led_platform_exit(void). k5 L2 d% g  i- n9 [
{
" ], u. W5 ~6 l/ n& e4 l+ K5 B( b% M        platform_device_unregister(&da850_evm_tl_leds_device);2 C+ r1 w  I) d& l" e1 x6 s9 \
$ D, W0 _, T- U  B1 H; R
        printk(KERN_INFO "LED unregister!\n");5 W  d% A1 v- S7 Q
}
2 R- r9 g, l) K$ }8 S) [; z, ]: Q% t/ n' D0 X. q3 }* C) K1 a4 x0 f0 b
module_init(led_platform_init);$ d( l5 ^1 j8 L$ k* D. _: p
module_exit(led_platform_exit);
3 _) \" F) X2 o% @# E) o, T/ N7 D; D
MODULE_DESCRIPTION("Led platform driver");8 C* f# v4 J5 ^/ F, v8 O
MODULE_AUTHOR("Tronlong");
, Z' p' t: D% N# R3 D3 z8 y2 E/ UMODULE_LICENSE("GPL");& ]0 U6 Q; {, h* d/ S6 }

/ o* Z2 l: A* E! o$ r, z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-22 18:29 , Processed in 0.038714 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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