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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。2 D0 G* p' J) m; ?4 u7 S6 h/ I
#include <linux/init.h>. y& _5 w8 Z5 G
#include <linux/module.h>3 I" p" z7 S* B* m. |# R% K
#include <linux/kernel.h>
% \' q! S, j4 C6 d- t) R#include <linux/types.h>* B/ ^, n6 A9 I
#include <linux/gpio.h>3 N* |8 V1 ]5 M1 W
#include <linux/leds.h>% {* k3 W. l' e6 t$ _, |5 @2 L
#include <linux/platform_device.h>( e6 B& b9 Q8 N( I

8 C4 b8 d$ n$ E" n; M+ m#include <asm/mach-types.h>
4 k. Q+ Q$ O7 Y% O#include <asm/mach/arch.h>
5 x  L1 Z# H+ A! p#include <mach/da8xx.h>
6 `6 L6 [; J0 Q. C, o7 }#include <mach/mux.h>; f: ?0 h: [  R6 g* m

- V, B3 m/ H- i6 _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 I0 C$ {- q2 ?- ?2 n# [* ~; F#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ G0 T" n- l& X- w. ]4 g( b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 y- v3 W/ O# X. D2 f2 @0 W#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ u* a  X! [! p& y! `
/ }* e: j# J. R3 U, K6 c. Q2 p  ^
/* assign the tl som board LED-GPIOs*/
  g0 c2 S: q  e2 O2 s# p1 h, zstatic const short da850_evm_tl_user_led_pins[] = {! m2 ~- w: n' J' c: h
        /* These pins are definition at <mach/mux.h> file */! p, {+ p1 O' t2 S4 T3 I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
4 M0 R0 z1 S9 O. ~3 o4 V; k- a        -1
/ [- Q" D1 N: S* y* ?4 L};$ m0 X% k( D) o  i( W6 f8 @7 \

' k; Y1 ~8 t6 P3 m5 G0 v' N" Hstatic struct gpio_led da850_evm_tl_leds[] = {
% [; \* d, G1 j. J6 J& n- [; e6 H        {
% w$ l1 S' s9 U/ ~( d9 l/ E                .active_low = 0,
3 o0 O( B7 V% r7 d                .gpio = DA850_USER_LED0,. |2 d* ~' @+ c) u, |& Q
                .name = "user_led0",! n+ I  f7 n) k, l  e, A2 B
                .default_trigger = "default-on",
! j' S8 `: U. z. z        },
- P0 K* C* W# x% I9 q3 |% C        {
# q% q- H' z# u. R  h9 T                .active_low = 0,
, q. G0 G0 R, @* a/ q                .gpio = DA850_USER_LED1,
2 @% x8 x4 G1 d' u. j: t                .name = "user_led1",
9 e: a6 D2 u  ^$ y- v                .default_trigger = "default-on",
+ Q5 g' x0 [9 g: D2 k5 |        },7 |. I. |( C8 T4 H! N. U
        {/ S4 F* x* y. m1 y) ^3 R: v9 A# i& @
                .active_low = 0,
& V2 j* T1 C0 \9 j                .gpio = DA850_USER_LED2,$ r  K2 t1 J( [; b# W+ M: k
                .name = "user_led2",7 W0 Q* ~; e2 M, q5 y  N
                .default_trigger = "default-on",9 V7 v2 v) M3 U
        },0 J3 f- o. `, i
        {
8 {& P' U5 l- N! P. v                .active_low = 0,2 w6 x9 Q6 a' h) B9 V
                .gpio = DA850_USER_LED3,
. S  c. \$ a0 c$ o5 Q* \! u9 [                .name = "user_led3",
" N3 V- R1 U: |. [7 U5 q; m                .default_trigger = "default-on",; x1 g+ l, W% R+ l" r. s% B
        },) T" H: S& m, w4 K/ x
};/ d1 D9 q3 ~7 v; L  u% q5 F

% L$ h+ e4 p$ k/ @: M! T. {& }! p; R( tstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# @& v: X" k/ n/ t
        .leds = da850_evm_tl_leds,2 i/ |) x  N, N/ R, @2 J
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 A; ~  {# h5 L& i6 n$ i
};
. {& N. }3 d9 }
" m# I9 K5 O/ p; Q5 q* P. A5 gstatic void led_dev_release(struct device *dev)
7 x6 F) D- d! o( M2 H! Q( Q' r{, n( v( F) _; D- |2 L
};
6 m( F4 U  C" L# P; P% p
: d0 B2 e! ^/ q: kstatic struct platform_device da850_evm_tl_leds_device = {0 N; b* _" o  Q  e% L" [
        .name                = "leds-gpio",3 K; T9 o2 F( c% [' j- ]% ]/ O
        .id                = 1,! x" ?7 s5 D4 D0 v+ V# C
        .dev = {
0 f; F9 f4 D8 s2 u7 ^                .platform_data = &da850_evm_tl_leds_pdata," `0 L: ^4 o$ M
                .release = led_dev_release,
6 Y$ ^$ ^8 \) B6 q- b# t        }
  {4 M. N3 A) E; }/ D};! u* J3 C6 f% ~, U# D
* v8 Q) F8 [1 P; B
static int __init led_platform_init(void)
, V" f% H7 L) ]$ ?+ y5 |& K{
: [! g& k1 ^- B; _        int ret;
3 x* e3 U0 G6 E" R1 ~/ m#if 0
4 c% V( X0 V5 P' m+ U4 `        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
5 ]( o  Z5 W1 d2 L( |& ~        if (ret), N7 l- E/ b5 j' L
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 O# K* t3 [3 `: g3 @: j9 H                                "%d\n", ret);
- F' S# _+ z$ J  R4 B3 x#endif0 O% o: {5 L% @' G: C1 P
        ret = platform_device_register(&da850_evm_tl_leds_device);0 r3 V9 c3 t# h0 w2 o5 n( V
        if (ret)
6 z* b( N. A: ~1 _/ ]! y+ @) W) W                pr_warning("Could not register som GPIO expander LEDS");
9 n4 m$ _% W1 \0 J1 x& a2 _3 q        else- i% e+ R0 |: r8 W  s9 ~
                printk(KERN_INFO "LED register sucessful!\n");
& ^" ~9 }: |5 {7 r& o) v: \2 r  b4 G6 M, J2 b
        return ret;
, c) ?% m, V  E; k}) e9 t: T1 I% B8 j) L( J

6 S# d  R2 K5 v) A4 F0 Astatic void __exit led_platform_exit(void)
+ m8 T! g2 J/ i) ^{
% L- d1 p( B) H% d4 d! R        platform_device_unregister(&da850_evm_tl_leds_device);
: T. c" C8 x. ]% Y
" ^6 e+ D5 H* @) L& ^        printk(KERN_INFO "LED unregister!\n");
9 R! m  k( [4 j8 C}
/ P( I8 g! e8 W; V
3 c5 O& A' t3 {# e! k6 e$ ~4 Jmodule_init(led_platform_init);
+ ^. ~, M: f+ Y$ @! |0 [/ ]module_exit(led_platform_exit);
3 {, J( b" t* K* R/ I+ v6 C2 i! V* _8 X: f3 y* Y1 a, p
MODULE_DESCRIPTION("Led platform driver");4 `; }  ^- o& n+ g% ^5 ?9 q4 R; u/ [
MODULE_AUTHOR("Tronlong");/ F  @& R1 z& b; A8 A  r1 P
MODULE_LICENSE("GPL");( m: ?1 ?: D  B$ n. c0 s$ n# }6 \
: z/ c- w5 O% h! `
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-4-7 08:50 , Processed in 0.040626 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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