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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' k/ d* G$ _' T/ t# U
#include <linux/init.h>
( q- y1 A8 q" G9 n( H& @3 f#include <linux/module.h>7 @. P! r; h$ [0 U, z9 l
#include <linux/kernel.h>
5 ]- [0 E# Q9 x" p( r#include <linux/types.h>& L. C- f& h6 g1 p7 Z, l
#include <linux/gpio.h>
! K5 t. E* D. ?; q+ H3 g  O6 R9 }#include <linux/leds.h>- t8 s) y$ K/ H* q5 g7 x: h
#include <linux/platform_device.h>" q. Y6 a1 h2 H' s& Y; U( L
- P2 P' M) Z3 ]
#include <asm/mach-types.h>- r2 a0 m7 S2 A" S1 r! `3 X/ W
#include <asm/mach/arch.h>$ F. b- O/ V4 e* c4 B
#include <mach/da8xx.h>
3 K1 `; Q3 [' \: L& x#include <mach/mux.h>
/ J2 Y) l: K9 j  Z. e# L, H# k4 z9 D% u; A& a
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* [6 p/ A- G7 j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)% `5 f) j) G: P$ X
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) X9 x# j. d% `: ]$ L7 f#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 S) U$ a" Q2 m  @! Q5 U; A# R* [. ^4 g( z
/* assign the tl som board LED-GPIOs*/2 ?# p( e$ i. U9 u3 X, K9 S
static const short da850_evm_tl_user_led_pins[] = {
9 o' V( H. G, \; c4 H$ W% e        /* These pins are definition at <mach/mux.h> file */2 R0 `/ ^# C+ p0 p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
) D: `2 g9 q+ t! R# M        -1
3 N8 K5 w- e8 W( ^};
  ~; L5 I" [4 S0 z( C7 @/ f0 ?" z1 W$ m  K, X
static struct gpio_led da850_evm_tl_leds[] = {
  B7 M- c/ ?$ j% e0 v2 k% h        {2 Z' W; K4 `6 A& B
                .active_low = 0,
6 e8 c0 h+ Q3 H' ?" s                .gpio = DA850_USER_LED0,1 J. i& f& @. A% ^4 b0 B
                .name = "user_led0",
9 T6 R2 X' d( z; w$ i                .default_trigger = "default-on",
0 T5 K# P' R9 u% T5 T        },+ E- I) w; J! ^+ i% c8 G
        {, F6 j( N: N' C: m3 m
                .active_low = 0,) Q+ H1 k7 v1 v* I
                .gpio = DA850_USER_LED1,
* x5 M8 V, D# v8 m' S% m0 T" u                .name = "user_led1",
4 ^6 Q8 M' f$ v# g$ w                .default_trigger = "default-on",
5 X$ W  T* y( O7 |: S! O        },% n8 Q: O; N! a* E; Q! X
        {
& a9 G2 ^4 R: s7 |8 n                .active_low = 0,& h. ^% O. s$ n" C: b
                .gpio = DA850_USER_LED2,
( }( N  F$ a3 F1 T+ ^                .name = "user_led2",
1 H" N  j; o7 \% ^! ?1 g& p                .default_trigger = "default-on",
& ^* R, r4 |! |  D1 y( R( F        },
* R5 I7 j3 e0 x6 G7 F& e        {/ e# m4 A6 z3 M6 _( B$ @/ a
                .active_low = 0,
9 j5 ?, C) P2 M7 R  ~                .gpio = DA850_USER_LED3,) b8 f5 r8 q" P" ?+ y! Q8 ?
                .name = "user_led3",9 T- K$ m) a4 C- \: E
                .default_trigger = "default-on",
6 c0 T% G9 }7 L& ]        },4 I: D. U0 Z( n/ y6 a7 i! e5 Z/ K( k7 P
};
& @1 z7 c0 Y4 l& m, ~: C( S* Q: h
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% ?& h# h) B, X0 Q$ v        .leds = da850_evm_tl_leds,. ^/ R; H6 G# |5 r+ D: H2 I
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, F) x; l& D7 N/ S" P& v};
2 j$ m2 |, S* R" S
8 v0 s5 q6 h7 g+ r3 }static void led_dev_release(struct device *dev)! o5 y( t+ t( L+ }7 Y) I7 T2 R' M
{9 P8 W/ V! C+ s1 H! c
};- Z1 n  i  y$ r. d6 [

/ i% u6 j4 i' i5 u! K  e6 ?4 R8 fstatic struct platform_device da850_evm_tl_leds_device = {
' j- m% a! z$ t2 Z) J' S( h* c# s/ V        .name                = "leds-gpio",) j* G; g6 k- B! s' i5 p: N
        .id                = 1,
+ r) P6 s3 P. w/ J        .dev = {% J7 \6 I, K9 O' k* E& u0 o0 H: s
                .platform_data = &da850_evm_tl_leds_pdata,8 p2 O9 g+ S% J8 E. _
                .release = led_dev_release,) O$ k0 [+ h* m- q7 R! x
        }
5 b3 i+ E$ u) b% C& k};3 c3 H  o3 P6 J4 K

7 e* m# l- @( q0 l. ~! _) w& Istatic int __init led_platform_init(void)
6 j( k7 r2 @& Y' G% A$ [2 m{
  A8 Q) p7 A' ^( y% p' p8 |        int ret;
# C8 y& \, {& y2 }% F% b#if 0
! T+ K: ~& a4 l3 t# M        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 r" X  R6 h0 D) @# Q6 m. E
        if (ret)4 z! M4 ]& r, @4 ~  X  v+ W$ Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 \# U6 c- Y7 ]: e! v
                                "%d\n", ret);% Q( o, z0 K" [  V' v
#endif
2 U& A4 P3 t2 p  j' N; \6 v) q        ret = platform_device_register(&da850_evm_tl_leds_device);
, z! o  ]* `/ H6 @1 y        if (ret)
# \5 s) T) e! {" T! p8 ^7 H0 |                pr_warning("Could not register som GPIO expander LEDS");8 V( A' P- m+ J* l" _* f
        else# q( V  K& a9 ?' H& O# j
                printk(KERN_INFO "LED register sucessful!\n");8 l1 N' H9 f7 S+ }) V6 y
3 X9 |& V! M9 u5 f
        return ret;4 A! K* H/ i+ ~% \8 t3 i7 t% ]
}
1 u/ {9 Z' I6 q4 U8 ?) m7 \. \% Q; T' d9 r! r; ]
static void __exit led_platform_exit(void)/ }" R+ O9 J5 H/ D/ ~
{
" X, S# I% y; U, q% l! q        platform_device_unregister(&da850_evm_tl_leds_device);
: u! n# _. B9 C# H/ ]# z4 o6 |/ ~  `
        printk(KERN_INFO "LED unregister!\n");* H/ _8 Y0 A  J; l% M% d
}/ b9 D8 _  r9 I3 g# ]# ~

0 m* c. H5 ?8 P& J/ ]1 F+ p" tmodule_init(led_platform_init);
; d) |9 `: D/ b* H* o: q4 v5 bmodule_exit(led_platform_exit);
, m* j1 _. Y/ T# h
7 J/ w, F, K! ?$ Q" w/ S1 [+ BMODULE_DESCRIPTION("Led platform driver");
# y4 p& T* }& D9 n/ G. yMODULE_AUTHOR("Tronlong");
4 A1 s+ h( a* g" a; a  JMODULE_LICENSE("GPL");
4 ]( y  H/ J" K/ x2 K2 Z5 k  @# O% J+ n$ m- P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-5 09:01 , Processed in 0.045444 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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