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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
" t: b, u+ O" P4 ^* G) a. f#include <linux/init.h>
& J& k0 d! E' j. |& F#include <linux/module.h>
/ V- O* C; ]8 _% O4 {; ~# T' g+ }#include <linux/kernel.h>
! ~* s* U! w( b7 S. v/ d% n- l#include <linux/types.h>( d4 _5 P, i- e1 ?" G" d/ l
#include <linux/gpio.h># f: Q$ N' f) T/ V" J8 b  {9 M
#include <linux/leds.h>2 u4 x; Y* T5 b# A! S; R  D- G* L
#include <linux/platform_device.h>
+ G: l# D# ?7 B( ?3 Q
: n9 H/ q0 v! R8 F: G! A( b: w0 o#include <asm/mach-types.h>( L) K4 {* j( Z
#include <asm/mach/arch.h>
" j+ {& O  O6 R6 E1 v5 F#include <mach/da8xx.h>
; k  R4 Y( S+ K#include <mach/mux.h>8 \# ]" f! B4 D* K# e1 x

0 y0 J8 }. I1 U9 K% M% h#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)2 u4 A" V+ u1 B& M$ ^
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) e3 ]; l0 [, L2 k2 R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 j: x' ]8 q* |2 ^& [+ ?7 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
/ W; ?/ i- W& O3 P0 A1 L7 J8 y2 _$ m  N/ p" J! g4 N
/* assign the tl som board LED-GPIOs*/
! ~8 \6 m% \3 q1 M& t% Q5 }static const short da850_evm_tl_user_led_pins[] = {
5 t  l" M% `) g2 m3 d$ n        /* These pins are definition at <mach/mux.h> file */
7 O# G  ^; {/ O$ E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. m4 H% G+ M8 Q5 _+ ~! Y
        -1
  W7 r' r' [: ?5 T. T! ~1 s};
9 Y* i5 l5 Y% o) G/ J: H2 o$ a# r+ {
static struct gpio_led da850_evm_tl_leds[] = {
0 o  q- R- K9 N, m, Q        {3 B6 L% ?: B5 j8 P
                .active_low = 0,  ]4 f. ~1 M# O3 A
                .gpio = DA850_USER_LED0,5 n% |+ b* k5 b
                .name = "user_led0",, S* I: \4 D! `" f
                .default_trigger = "default-on",# [- ~$ y( c* e
        },
* M2 m5 |( O  P& d        {
6 u; n' _; t, o; i0 t                .active_low = 0,
+ d( \. N# n/ u; m+ B- b/ Q# a                .gpio = DA850_USER_LED1,
2 S/ [# ?6 v8 Q" C+ H% B! h! A                .name = "user_led1",& c- v. Q" C: m) @; f0 ?
                .default_trigger = "default-on",9 P# e6 Q8 x# U9 l6 v* C
        },, Z; S. F; V+ }8 }( N5 @5 o( _
        {
1 r( A$ U5 J0 H: G& H+ Y) e: ^                .active_low = 0,: x# g1 @$ S( i6 K: o
                .gpio = DA850_USER_LED2,
4 Z# G# I: M! S. W1 i4 V                .name = "user_led2",
! w5 T0 U- L4 Z                .default_trigger = "default-on",  Q+ j3 r! i3 h% p9 S/ ]0 G. E
        },
$ s& ^) m  Q: G+ a/ x: T        {/ c3 T, G8 i) E
                .active_low = 0,
$ L7 u6 O& g/ [                .gpio = DA850_USER_LED3,  h$ r6 ]5 Q/ y  I
                .name = "user_led3",4 P1 r/ u* v6 p* `5 i
                .default_trigger = "default-on",
& n; g! ]. [8 p! t% M# p7 B1 O2 J" F        },! q/ d$ L: n( _& T. K3 j) B
};& V; p4 n4 T! n$ e/ {6 y* l  h5 _
( H' X( ~  D$ b0 Q0 M; Z# x
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% k1 u/ F5 v/ h* ^        .leds = da850_evm_tl_leds,# s# S9 z' ~7 M  k' I2 r2 G
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 W1 H2 P& z  G( d# w};9 l- W! ~/ P. X$ s* A
* B% |0 d$ v( w# Y2 V) `
static void led_dev_release(struct device *dev)
" U/ A" T! r+ C* ^8 y" l3 i{( V# T6 W( y. G. F  d8 X8 a9 b
};
2 r7 q  e0 P7 G% \% [$ p6 T  I: s
& e' P7 O6 `7 y7 Gstatic struct platform_device da850_evm_tl_leds_device = {7 u3 X! E$ _4 u% c
        .name                = "leds-gpio",0 B! q' T( l1 x3 N
        .id                = 1,
! f/ [) _) K* P# L% h$ P        .dev = {
0 f' `- |( }/ E" Y: w3 R. R                .platform_data = &da850_evm_tl_leds_pdata,2 y) N, Y0 b' G9 k% \1 s+ y
                .release = led_dev_release,
& x- Y. f$ m. |2 N8 h% u        }0 T+ ?7 s1 X, Q+ q  x' A
};! I! V+ q1 V) Y

6 D3 H% T8 e4 m8 Ostatic int __init led_platform_init(void)
5 o& d- r' x3 w1 O( ?# D{
1 W: d0 w$ }( o) D/ t9 L% c7 z        int ret;
$ J* J& b9 w* H+ T3 A#if 0
9 S/ e$ j+ z6 l% U" V, ^1 H$ Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);5 ^1 B* a0 ]- V/ i1 Z
        if (ret)6 A# t; l$ S$ ^  V3 h6 X
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 W# J  Y2 @6 [9 Y0 h4 F4 ^                                "%d\n", ret);$ T* [/ I5 U- r9 U
#endif
: Z( T) ^3 s0 @' P1 ^        ret = platform_device_register(&da850_evm_tl_leds_device);
# A0 d/ p9 X+ d! F6 C        if (ret)2 H( b. L' X: s# N6 c
                pr_warning("Could not register som GPIO expander LEDS");
! {# e  c+ M" z% a        else0 L: F0 y3 x4 A: W3 H: r) a& b" w
                printk(KERN_INFO "LED register sucessful!\n");
' q, Q& V* d' [2 P+ X0 S/ u/ [9 m( R7 O9 A9 M8 e  z1 R
        return ret;
! A, t- o; Q7 _/ [+ k0 y}( E1 W6 t+ O! g  o8 M7 z: Z5 Y, E

- b" s9 T" q, U. y; |static void __exit led_platform_exit(void)8 e% N* [3 t; F$ L
{  ^5 x5 ]6 T! O, L2 J
        platform_device_unregister(&da850_evm_tl_leds_device);
- K" a+ X: z( k! F- @' q; \, \8 u- V* C- C: }8 H+ \1 B
        printk(KERN_INFO "LED unregister!\n");" [, |3 Y, d6 ^( _! j
}
6 o& u0 F7 Q3 C5 r! T2 ]! j+ _3 H7 B1 E$ |; W8 B# B* g& t
module_init(led_platform_init);# T  U. e( L. j! H9 q2 [+ h
module_exit(led_platform_exit);" O* c' \/ [: ?/ T9 ]
9 h7 ^) w# i& T1 D- h
MODULE_DESCRIPTION("Led platform driver");
* x$ f# i4 Y  l. M" d8 XMODULE_AUTHOR("Tronlong");4 n6 d6 X, \, f4 M/ k
MODULE_LICENSE("GPL");
* x  y: R5 h  V7 d6 I3 c6 Q3 n& V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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