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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
1 o$ U3 M0 [. r9 [6 ~#include <linux/init.h>
  b" _3 I# E+ z+ ^5 v3 a. K; z  p/ v#include <linux/module.h>0 P9 \) _1 ~8 Q% M+ a
#include <linux/kernel.h>* w! g6 D0 K2 F* Y# K
#include <linux/types.h>
+ E5 t+ A" S! E, V# M' ^3 A#include <linux/gpio.h>( ~( {0 A& q& i1 B# [+ h) I+ H
#include <linux/leds.h>
  I' d! \2 I6 q#include <linux/platform_device.h>
/ a* s/ {3 V! V* f5 q. l4 Q3 O, I' ~0 f) Y
#include <asm/mach-types.h>  B- {, D; e1 D3 M( s- q4 E
#include <asm/mach/arch.h>+ ^! g. ~0 j. A: }; s) _# k. o
#include <mach/da8xx.h>+ H7 C8 L7 l5 m  A9 u" K
#include <mach/mux.h>) s, z" ]! S: [" E
9 f$ S3 M. w; Q7 T9 B
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& U5 D# X- K' T! K2 B5 y
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 R: g4 c7 y7 Z: S4 n+ {+ v
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% d& {2 L0 l4 y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ B; t' D9 d  _5 q3 k( A4 r8 F7 O0 s9 a

9 R- o6 X0 H& s' {; P/* assign the tl som board LED-GPIOs*/
1 D" O: r  G$ ]" d! [static const short da850_evm_tl_user_led_pins[] = {
: H/ ~9 M- l/ M' O3 D        /* These pins are definition at <mach/mux.h> file */
# x& s+ j, f, _1 O' C        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
* z- P: h$ b+ o9 |2 j/ ]* t        -1
3 I+ Q) ~3 {1 C4 l/ \& J3 @! X};
& R- z' `" j6 q1 k# X! e* U$ ~1 y$ m6 a% F! Y( r
static struct gpio_led da850_evm_tl_leds[] = {+ b# X. a% i. p4 _7 m4 e, L2 |
        {+ `1 V9 U( G2 P0 n5 Q8 p: G! [8 g: ~- V& _
                .active_low = 0,
! Q) x. I* t' E                .gpio = DA850_USER_LED0,. n$ T' K9 k# D  o  ~- n5 c! q
                .name = "user_led0",
# w. e; M+ O$ @0 R: z& W                .default_trigger = "default-on",/ k# h+ d# P. G
        },) Q0 Y( y: T) f" s& H2 M) g  S- z
        {
# }; `; ]4 v+ `0 s2 k  J& i. G                .active_low = 0,+ S9 ~4 Z) c: o' I, B
                .gpio = DA850_USER_LED1,4 M9 S2 ?. v$ Q! T
                .name = "user_led1",3 Q1 i" a& M1 v/ o
                .default_trigger = "default-on",( k4 I6 @3 D. |2 n( e; Z, a: p/ b
        },
3 f! z6 k( X# w$ P4 l        {9 j( u3 ^  L: }2 {& {" S! e- c
                .active_low = 0,  ?( z; j) a1 o" D1 r7 ^
                .gpio = DA850_USER_LED2,
2 O8 ~3 \6 u- C4 l                .name = "user_led2",
8 N% C5 D+ l" N; d  V                .default_trigger = "default-on",
' [' p5 U2 ~( _  V        },3 U) O% I+ o5 s( e9 s; d1 c. R
        {7 |9 ]$ A! i* ]9 ~
                .active_low = 0,: h) t) v+ z- b7 a
                .gpio = DA850_USER_LED3,
7 V0 H, b% H1 L' S8 j                .name = "user_led3",4 ]( c& O% P* w  z
                .default_trigger = "default-on",: G0 N( s# }0 R" x
        },
$ ~5 S! k; v# I* y6 N};# z( T) C$ n) W5 A6 R9 {
5 |" E- N7 }  E4 a
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! `; V+ C- i$ ^" q        .leds = da850_evm_tl_leds,
1 k. Y+ n7 D% K2 ]* E. n) M: _- Z% j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 n- i9 P9 M; I- b+ D
};
8 S( d6 j/ a2 U. W- D; h$ t% \! i" R0 N3 U
static void led_dev_release(struct device *dev)
2 i1 P' i  B7 @{% ^; ~2 |, |0 ?* ?9 B. l, Y
};: P1 g( r; k( j  d) x( l

8 {8 X4 v, @. r* hstatic struct platform_device da850_evm_tl_leds_device = {
2 u+ I0 ~4 ^* z& Z1 }; q        .name                = "leds-gpio",
, D( Z$ D& X" i! O% a; `# X        .id                = 1,
; `- t  S1 V2 C  [        .dev = {
3 o7 Q, K8 V$ L% K0 N                .platform_data = &da850_evm_tl_leds_pdata," I  ?% U8 ?* M$ k, A, W; T. b
                .release = led_dev_release,
1 C( m5 ~+ \+ P& a7 z( P9 a) i        }1 V7 n, {5 x  @# U* H& N
};
( t2 G# n* n5 h* J
; g: A; O  P- t; U! _' |static int __init led_platform_init(void)" l2 }* Y! k% f+ W
{8 f( E4 E/ R4 d+ o8 A% {! `5 g
        int ret;: {  [8 s  O; W* h7 H) s+ z
#if 0$ _( V3 y  a2 Y' |( A5 ?6 p6 y8 P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; s8 w+ C. G! `( E( ~$ T
        if (ret)
2 l) G* V8 [/ \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 O6 h% L; P2 R6 |. i- d! T2 j
                                "%d\n", ret);7 A+ B# h7 Q9 h, W
#endif
+ l. }- Z( G7 A4 d7 }+ u9 T        ret = platform_device_register(&da850_evm_tl_leds_device);
7 d9 F) [3 V& D7 s- T4 i; W        if (ret)# U' L& R6 P2 E! b+ z9 B
                pr_warning("Could not register som GPIO expander LEDS");$ u1 M0 p* s4 a/ H3 q* z9 }
        else
% P6 u8 m+ d7 H3 E4 j) F! i                printk(KERN_INFO "LED register sucessful!\n");
6 Y0 I; j: H( ^. ]) @+ E
0 e! q: _7 L- M. ?$ J7 `) }% W        return ret;3 ~7 G" K& Q+ A4 G* l
}
+ `" X8 R* d( n4 r) t: u- L  C0 N2 {8 l2 h$ R/ `% _! w
static void __exit led_platform_exit(void)2 O( i; E) x$ q
{! p5 W; d. y. S: F
        platform_device_unregister(&da850_evm_tl_leds_device);$ L* h- l! z( v. V! e( E& `8 G
3 D- z* `( M  c+ O, M% l
        printk(KERN_INFO "LED unregister!\n");  I- q8 F$ J/ H+ Q1 n+ A2 @
}
) M! {) V- C8 {8 l- j0 V
5 B5 G/ D, i- Omodule_init(led_platform_init);
1 f3 P1 \8 @- e# r8 }4 Lmodule_exit(led_platform_exit);
; ~8 G5 D  R: z, |. T
& ^4 O1 l  v, O9 N* tMODULE_DESCRIPTION("Led platform driver");% m  Z( {9 O0 {, A
MODULE_AUTHOR("Tronlong");* O# L/ I) q3 U2 G+ V3 \
MODULE_LICENSE("GPL");2 D& A3 h9 q7 e" M2 d
6 F4 W: `$ V+ d9 O! k9 K
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-23 03:14 , Processed in 0.047484 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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