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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。- F; g9 S8 j9 a! ?8 \& ]" w
#include <linux/init.h>
3 y. E; Q$ G7 P1 z! w5 b+ D#include <linux/module.h>/ I  i0 M7 d% o# k, N8 v
#include <linux/kernel.h>
1 p  M6 u' x2 ?" s; x# _, J#include <linux/types.h>0 y1 ]: t0 s( K- A2 l
#include <linux/gpio.h>4 |4 v1 {+ ~& U1 a: q0 @* o
#include <linux/leds.h>
& ^  w5 W! u5 T$ z2 B#include <linux/platform_device.h>+ U, z( O- A. z% @1 H
) F: S. f+ ^! h3 e0 q; G$ @8 W
#include <asm/mach-types.h>
5 s# a, l; R# i3 D7 f#include <asm/mach/arch.h>2 I. V4 j+ w8 g$ l% @
#include <mach/da8xx.h>8 ]" X) b/ B" `: h3 L1 k2 s
#include <mach/mux.h>2 b! ~7 Q  j0 @/ U' N* u; [  F

) j- m) g0 X& e0 R8 C1 A  a3 o3 ~#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)  r) T! }# j0 I+ B* p9 c
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
: f0 }! q+ I# f) u$ r: [#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  {5 E! C6 @, v7 I/ d
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)- z6 N5 l$ _- Q% S. E) I, Z
, v; O/ B; I  O$ G' w+ D
/* assign the tl som board LED-GPIOs*/
% G/ d$ p8 [$ g# L' _7 R, N# Qstatic const short da850_evm_tl_user_led_pins[] = {
2 f& c. b, m. c" F- M' |5 L        /* These pins are definition at <mach/mux.h> file */
$ k6 S0 o4 J0 I9 f3 N4 I. l& F        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,3 P$ z1 B  r  v( [; a5 a
        -1
: {! F0 B8 i! [7 V9 p6 G};3 m: G# P+ N. P
- ~2 }: W+ d6 J+ [- G# B' F
static struct gpio_led da850_evm_tl_leds[] = {
, \$ @$ b: p- @/ v+ P1 [        {
' u& f- Y$ s6 T6 i: A+ ~                .active_low = 0,5 [2 A/ v8 Y' W
                .gpio = DA850_USER_LED0,
! U& Z3 |7 n0 X3 U: Y: ]' A  f1 {9 {8 E                .name = "user_led0",8 D: l, D/ M; s
                .default_trigger = "default-on",& x' I: \5 U5 x- l% k' o, J4 D
        },
5 b" d  e9 Z4 ?& w4 v9 _: V        {' m& Y9 t& B# Y0 T
                .active_low = 0,& `4 i* E! K6 _& ]4 u$ i! E3 g' c) t
                .gpio = DA850_USER_LED1,
% h; W( z3 r) ~2 _4 p* J+ i                .name = "user_led1",
# t) s. c7 m: e) p+ q5 E2 T2 F                .default_trigger = "default-on",
* p# v; f2 g- }- J, s& A9 B' t3 G4 F        },
9 e2 |& _& c; [$ A        {
& J7 G7 `+ _, _7 c. M                .active_low = 0,4 l- h6 i' y0 h2 ?* D
                .gpio = DA850_USER_LED2,$ d# ~' S2 w& V" A( B
                .name = "user_led2",  p" {8 y  J4 w$ W" S, k* F% `( K
                .default_trigger = "default-on",
' @6 L8 K/ ]" q0 G- [- d        },
* G# j* a7 B  F, x: n& E! W; u        {
% h! z$ {# I0 K6 i3 f                .active_low = 0,, T) p, }. F+ u  |3 J# |0 I
                .gpio = DA850_USER_LED3,
) e. y$ `3 k8 q- O                .name = "user_led3",
, k3 w& }- p4 O; m: y# o! y                .default_trigger = "default-on",) [6 B( l! i% Z/ u
        },
8 K! G8 e. U4 y  A% T: ?& l+ l};$ \- h1 x' `1 ?/ ?5 q3 b6 f

9 y9 {! @6 l6 K+ N! y7 ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 g+ k3 D* D% o        .leds = da850_evm_tl_leds,7 c! K" O% X. Z2 e
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),7 q( ~# m% \+ A. w( d" A/ y
};7 l, P! T! u) @+ |
) G3 c7 q$ t: V# r
static void led_dev_release(struct device *dev)1 l# s0 o% X- Q. f% x
{
  A$ y" `# c3 N- d3 M) |6 T};+ c4 E9 r) ]/ V) M* i
; h% F7 q; ], O
static struct platform_device da850_evm_tl_leds_device = {: h4 q+ q5 |# H& x0 Q6 q+ ?: I
        .name                = "leds-gpio",5 D0 [! D4 X2 R* ?  Z
        .id                = 1,
* l& ~) c+ v" u        .dev = {8 t5 Z8 A9 A* F# T! n
                .platform_data = &da850_evm_tl_leds_pdata,. {7 j5 C3 d6 L2 \4 A3 U) J4 H
                .release = led_dev_release,5 U0 S% g' S9 ], T. g
        }. n" b: n4 }1 E$ |
};: f1 p4 L5 k1 `* V2 q! h; m
8 h# K6 N: l- `( D) Q
static int __init led_platform_init(void)
! r1 _# I' D1 }$ y) N$ I$ B{$ s0 Z! P5 x+ W! u+ K& h8 d& f
        int ret;
7 o6 R/ |* |8 ^; K2 R, E#if 0/ t: \: \$ i  H7 c, F
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 Q. N! _7 O' {5 ?$ X+ |
        if (ret)
7 x- r$ O  B% @3 n: j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- U& J2 z) p/ [( z
                                "%d\n", ret);
; X3 h4 G0 E* j3 _8 r#endif
! r. k# g. @+ P% q. [% ?        ret = platform_device_register(&da850_evm_tl_leds_device);
7 [8 O7 b) n) `  `& U        if (ret)
3 l! U7 ^' V4 p. ^9 _! y9 M                pr_warning("Could not register som GPIO expander LEDS");0 y6 m4 B0 F- @/ ]) L
        else; ]- Z6 _$ y% z. u. r* D: E! v
                printk(KERN_INFO "LED register sucessful!\n");+ T$ j! m1 _$ l. u" C( s( W8 v

6 X+ k; X9 r" |3 W        return ret;& S" S; h0 a% F7 Z
}
, U; |# p) S$ b! f7 F* i7 u
" a3 ?* |$ f* b! r* mstatic void __exit led_platform_exit(void)
) w: r  T- r3 W" ~5 V7 ^  M/ s{7 I" Z6 H8 h9 Y3 J8 F2 s
        platform_device_unregister(&da850_evm_tl_leds_device);, x/ f3 t4 {+ x6 Z

: ~( M9 N+ v* s0 W6 A0 `$ S        printk(KERN_INFO "LED unregister!\n");, ^9 J# g: i/ ^4 D4 }
}
7 K' f% |4 I0 @( O5 _% v1 P/ H4 F% \3 {9 E# N
module_init(led_platform_init);( G, \' |8 H! A; K9 }
module_exit(led_platform_exit);
* T: C. O7 b6 b3 p/ j. \) _6 f) p' y" Y7 o' P7 s
MODULE_DESCRIPTION("Led platform driver");6 ~0 }# f* u; ^
MODULE_AUTHOR("Tronlong");
8 l$ G9 P$ ^# v5 KMODULE_LICENSE("GPL");
, v4 g8 d+ ~0 I( a& ?& X* g+ d* p' c4 a; s" X0 w
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-26 06:47 , Processed in 0.040359 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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