程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ l+ J( a; e* N7 @8 v#include <linux/init.h>
" V3 {, @  |' W/ m1 ~0 I& I3 V6 W% C+ u#include <linux/module.h>
) F0 u8 E$ p: e- d" g' y- X1 r#include <linux/kernel.h>
  k9 U) m4 ]. g# K; ?, F#include <linux/types.h>' @3 y) Y3 r' N( |
#include <linux/gpio.h>! [  _) E9 I' {9 Z
#include <linux/leds.h>6 `- o! P+ V& p
#include <linux/platform_device.h>5 @0 ]6 a3 V$ D

) y* C  o' m4 x1 u5 E& l0 Q/ Y( f#include <asm/mach-types.h>
0 x( {4 t9 R) [3 b- U& u#include <asm/mach/arch.h>
( C0 Z+ w( i% G( X$ p+ j#include <mach/da8xx.h>
. E- X0 ^8 H& N5 q/ G: S8 x4 K#include <mach/mux.h>
9 g# ?) C  {$ T. K- N! x5 x! v8 v/ D; ]0 `& t% H4 x9 U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
' ~" _. Q2 c0 b* U, [: ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' p; x2 E6 u  G7 P- g% I: b) H7 k#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" o8 ~8 c9 W4 z% j#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" g- U" G9 M% P3 Q( o; ^
; b4 Z* d5 G. a
/* assign the tl som board LED-GPIOs*/* r5 E/ d/ X' ]
static const short da850_evm_tl_user_led_pins[] = {
3 N5 j1 L& X) I        /* These pins are definition at <mach/mux.h> file */& t  K' W" N& G/ n2 C2 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: w1 Y( y/ {6 Y% K
        -1
3 ^6 H# X- S: @- ^};
; H5 ?& ~( |  e7 |' E6 k( ~5 h$ ^- n% @- V8 A' n1 a- \) q
static struct gpio_led da850_evm_tl_leds[] = {2 Q. {2 P4 B- A
        {5 |; L2 D, Q( ]7 e( z
                .active_low = 0,  j3 d) E8 T3 k) n' b
                .gpio = DA850_USER_LED0,6 Y, {% y8 b3 l- R4 R
                .name = "user_led0",
) d  J) P( k: w7 D                .default_trigger = "default-on",+ i/ D3 [2 z5 m! X, o
        },
+ G% s- H2 L' z- A/ e  V        {% {! R  z+ F7 Q1 y5 z- {) S
                .active_low = 0,
2 P" c0 s4 H# _) ?                .gpio = DA850_USER_LED1,6 Q0 p+ R( ^% a7 |' }
                .name = "user_led1",0 i; i# ?) X9 f1 L* K+ b
                .default_trigger = "default-on",
) t3 G$ z' N4 m9 i        },
5 t$ G! @# `/ N! Q1 j& u' i        {
. U8 o. E5 s4 z+ ], ^  q                .active_low = 0,- j% L; m+ f: b" @: \
                .gpio = DA850_USER_LED2,9 Z! g/ }0 l; Q* _& C3 W
                .name = "user_led2",+ Z9 d) H" f5 J5 o, h% j6 I/ l2 `
                .default_trigger = "default-on",
& j( X& W( U! s/ Z6 `        },
5 Y/ q. V6 ]0 y+ B( w; z        {1 e1 `  P& X; {0 d# q: h
                .active_low = 0,% U5 A$ G( N2 ^! d7 Y2 @
                .gpio = DA850_USER_LED3,7 h! E7 i3 q9 b; d& a
                .name = "user_led3",
/ ^( z8 d; z+ S  }, [' q* f& f                .default_trigger = "default-on",
* t  O: V7 y/ E        },3 M5 }  K  M5 ?6 B1 {$ G/ L7 x& S
};
+ g. z4 I. e" P  e$ ?. w# p6 |# h7 k6 s# x# z' [6 F, G1 q" S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 `% o+ Q! u) J: P- B5 ?
        .leds = da850_evm_tl_leds,5 n* U, x6 x6 y* ?: z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( J0 \; E/ r* p2 L1 g! h" i$ D
};; W8 o+ _4 ?( ^4 H! T8 E6 d1 O6 i$ Q
, a1 J' H- A) v
static void led_dev_release(struct device *dev)
% v) t! G. A: {8 ^$ i) X* D6 L6 |{
1 v- A1 }' @7 g0 d};. `7 v' \, [2 Z* N% ~) {
$ W+ d7 _$ n! ?$ F/ c6 K% j0 ~6 |
static struct platform_device da850_evm_tl_leds_device = {
1 g/ x1 H0 b! z5 O1 i& S) @        .name                = "leds-gpio",
2 \) Y1 d: A: E% E* |( I6 `$ s        .id                = 1,3 |# A+ x8 _( C" E  I8 a* b
        .dev = {
; k" S/ k& Z8 G  ?8 c8 h* f$ X                .platform_data = &da850_evm_tl_leds_pdata,; t! |, L! O: \9 I2 c0 U7 ^
                .release = led_dev_release,
% @5 G  R9 O7 B: n9 l. h6 H8 s        }
% ?$ |5 }) G& y! M- k};* R: k# b3 }0 ]! _( }6 p, F
3 B$ [+ b5 }  t  l7 q7 a
static int __init led_platform_init(void)
+ \: v  d- e7 @{
& `( q- t) l8 H        int ret;
+ P) L! p/ N8 V#if 0
' J$ v% L4 G# H0 g5 A, Q0 n        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" \0 A! o1 b& j+ ~
        if (ret); s* @2 I& m0 U
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' Z* o6 u4 a/ l2 ]9 I% n  r
                                "%d\n", ret);
8 @. ^' h+ z( j7 J8 y0 ]0 S#endif
% I6 N0 C7 |* i3 s0 i: V! g        ret = platform_device_register(&da850_evm_tl_leds_device);+ u- [9 i( X$ T0 ^
        if (ret)
" `" D. L6 G- h) B, v+ k                pr_warning("Could not register som GPIO expander LEDS");
# U0 \8 h; Z) K  s        else
9 \6 O& V7 `0 S& A1 G                printk(KERN_INFO "LED register sucessful!\n");
" E6 i2 T* C7 k$ m+ a" B) G( P8 ?3 j/ L) I* a* x
        return ret;( s/ Z' Y% p8 S: l, T) a/ F
}
( V3 M! w2 b, h" c; x
: q6 ^" |3 d6 }static void __exit led_platform_exit(void)
9 l' a/ }9 u% S: ]  G6 S* t{' x: C. o0 N8 h7 b: y
        platform_device_unregister(&da850_evm_tl_leds_device);
! y/ ~8 f! B+ I; N. S! X" O, m2 m1 ^
        printk(KERN_INFO "LED unregister!\n");  i) [6 f( ^2 a5 V' h
}! S) P4 _" G& d
9 d6 V$ |# V, r  H5 W
module_init(led_platform_init);! n: W6 D+ d9 E5 q5 G7 e& T1 g
module_exit(led_platform_exit);- ?  e; {& w/ D

, G1 \  L' K/ w9 }MODULE_DESCRIPTION("Led platform driver");% k* \* i( P% H7 I+ v' t
MODULE_AUTHOR("Tronlong");) K" [' b% C( E/ [
MODULE_LICENSE("GPL");
2 i. A& l; R+ }6 X. k( H7 F8 I& C3 [0 h6 M- r1 g- Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-7 12:12 , Processed in 0.037409 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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