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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
* `( G- [+ p' @: N6 O  o8 N* t% i: m#include <linux/init.h>
" X3 _0 `( x! O#include <linux/module.h>) c' w0 |" Y8 K5 Z9 y
#include <linux/kernel.h>2 k1 P3 l8 Y" H0 Z8 p- B- a4 r
#include <linux/types.h>3 U+ i! M0 {+ t& ~/ q  m% d
#include <linux/gpio.h>( d6 c7 P+ y  L; q1 F7 i
#include <linux/leds.h>
" _9 O& _* e9 Y+ d3 Q#include <linux/platform_device.h>, M0 f. j- E' S9 p
( }9 }1 l, E2 l0 T' ^1 B
#include <asm/mach-types.h>
2 }8 z' _0 g3 X#include <asm/mach/arch.h>
( d% M3 h8 ^2 U3 b8 n#include <mach/da8xx.h>
2 Y3 b$ x5 c5 j4 i& C, d# G- r+ [#include <mach/mux.h>
( I$ }, }  \; Q
  ^' b8 w" a4 e3 y6 v#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
5 `* |7 n/ n1 P; m& Z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)) |6 B) c' P) I/ K/ {( j2 h  e6 ~0 V
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
# i9 F. v$ x0 W6 y" K  q$ E#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  Q5 x% h4 E. l8 n+ \+ U: `& D( r+ k
/* assign the tl som board LED-GPIOs*/
9 G% A% O4 x6 {static const short da850_evm_tl_user_led_pins[] = {" M" `5 W6 {: x! [$ w( ]
        /* These pins are definition at <mach/mux.h> file */5 b/ _3 T- r+ \* p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ ]* D% H; y; \- G( F        -1
- V& V! u8 s! n0 g};7 J) N' }8 u6 d

* N, y5 I5 |% a' Sstatic struct gpio_led da850_evm_tl_leds[] = {
& B5 s" V# Q3 Y: y! |3 K# X% Z8 v        {
) J0 m$ K: B# X% Y+ `                .active_low = 0,- Q9 Z! q. j  a" [
                .gpio = DA850_USER_LED0,+ H/ N) @7 v7 J
                .name = "user_led0",6 ]* R, [+ z" M
                .default_trigger = "default-on",. n& `8 `9 S, ~% P% M6 x
        },; F; H& J- U( Y9 Y. }
        {
' n+ ]- A- o6 x* z& g$ Y* S                .active_low = 0,3 p3 l) }! _) M: Y- T% p; D
                .gpio = DA850_USER_LED1,+ {" j. F) v; b5 C( `
                .name = "user_led1",& d( d4 `; ]8 r
                .default_trigger = "default-on",
' [. `- U$ y4 ]7 D( Y0 ~3 I        },
+ f. e, L; e! \( N- m) J4 k: \        {9 k$ R5 J1 R6 X  Z
                .active_low = 0,9 j8 y) M: A1 y% i4 R, q
                .gpio = DA850_USER_LED2,' Q& Z. g: b" X' M
                .name = "user_led2",: d& O& F% ?0 V
                .default_trigger = "default-on",
7 K* Q0 g8 {& @' b* P7 A1 g! y        },; k$ K8 T! Q7 ?1 d
        {
* ~! m: U2 M9 f3 F, V; W! Z$ F                .active_low = 0,: b$ R# U; l7 c" [2 \( q1 _
                .gpio = DA850_USER_LED3,
3 L9 O( J6 z7 \/ Q9 s2 x/ Y                .name = "user_led3",* e. W# l/ e9 C$ s9 |
                .default_trigger = "default-on",
9 A. o+ v. L2 h  w- i        },, U; \/ ~1 N+ I) z, f1 n
};
1 u% C, x. Z- o* \
9 R- Z: z; u0 R" A" q6 F/ y' H' Astatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 _, o" L$ K) i! H  w
        .leds = da850_evm_tl_leds,
* r# X% \6 b  d, p' V" j        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),. A  ]' M7 J( i1 `& [
};& M# Z3 q- W. ~
# v  l# B" ?+ g- D, \
static void led_dev_release(struct device *dev)
0 j) L6 G3 J/ B' ]1 G7 ]* b; @{
! G6 ~# r" ?* K$ ?6 Q};; N$ N( T0 K0 x& R6 F

' h: o/ c% N# c2 |$ f2 i0 s1 qstatic struct platform_device da850_evm_tl_leds_device = {6 C9 i; G# o" v) }' @* O
        .name                = "leds-gpio",/ C4 @' g0 }2 o
        .id                = 1,+ F" s+ r6 }# B" P* ]
        .dev = {
  }% K7 b) `5 n) r. Y: u                .platform_data = &da850_evm_tl_leds_pdata,
3 A! C' N' s  v# u  F                .release = led_dev_release,  ~7 h0 K  ^9 @! R- S) s% k/ B0 A
        }  _' m) J! n% o- ?- n9 G, r5 Q
};* J' L3 |! O* S' S! N7 N

, c, s  h" G% v/ z7 V: ?static int __init led_platform_init(void)0 }5 N+ k0 t1 @7 n
{1 S0 T5 `% ?; Y
        int ret;
& n# Q4 B% @9 w2 d/ ]3 F: o( \% V6 C#if 0
) I4 U; H6 B  o% w- c: e1 G        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 a4 ?2 l! D* g, d5 \4 |
        if (ret)
+ g" D2 p7 h& k  Q* L3 u# f                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
, k4 v& T% \: B' T                                "%d\n", ret);
/ d" j0 N$ K" J# ?9 x  W& r#endif; C. q3 \" j* |  I& q
        ret = platform_device_register(&da850_evm_tl_leds_device);
# r# o8 O7 \4 r" R& j: n, U* U/ k        if (ret)
8 C( }: P) d( h                pr_warning("Could not register som GPIO expander LEDS");
5 G8 u/ `1 }- c9 o* R8 y& h        else7 E2 p4 m! `% v- t0 d: Q" Q/ r
                printk(KERN_INFO "LED register sucessful!\n");# O9 P2 J* t9 p3 j) l% A

! d: c2 ?) u, ~0 a4 @* o, q        return ret;3 w& O' V4 r, q7 h6 ~0 _# C- b3 D
}
3 A$ V, J8 z# J
. L0 j5 y( B; q, @' A! U/ tstatic void __exit led_platform_exit(void)
' Q. k! k: O( @  ]# x7 K1 t{
5 t. K5 ?. }# f# L& }        platform_device_unregister(&da850_evm_tl_leds_device);& f- @$ x( C$ X# m# ~0 E

3 H& G6 Z" G7 e        printk(KERN_INFO "LED unregister!\n");& c4 s0 y' E, R7 @# T% ^! }- C' C
}
: m( Z; F8 g' i- t! `0 M0 }
0 f4 t. P2 K8 xmodule_init(led_platform_init);9 s, t5 E$ \; F! G+ [- W
module_exit(led_platform_exit);9 C! x2 G! j* L3 X

- g6 Y/ L% e, m* JMODULE_DESCRIPTION("Led platform driver");: v  P9 M8 s8 h  R
MODULE_AUTHOR("Tronlong");
! e$ C+ y" H- k+ z0 H$ }" J8 ~MODULE_LICENSE("GPL");
# q: u$ W: e, y0 ]4 h1 ?' F8 P) i
8 l2 P3 o! X4 {# h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-1 17:23 , Processed in 0.037761 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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