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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
. J/ N9 Q4 h! k+ A1 i/ u2 b/ b#include <linux/init.h>4 e' h, Q8 B" C* O
#include <linux/module.h>7 c3 t) E* D( w! z. m
#include <linux/kernel.h>  ]4 B- Q1 E) i2 H1 f. g
#include <linux/types.h>
1 Q. L) G( W* F#include <linux/gpio.h>
+ }& z% g* q  ^! Z#include <linux/leds.h>
, D! c. _  |( J#include <linux/platform_device.h>+ r) {* b6 N" J5 T: i

- r  U! k" `8 C( I( a* Y#include <asm/mach-types.h>% p1 E  w' @4 O' C8 E' A
#include <asm/mach/arch.h>1 \6 r/ V9 @8 L! k  x* ]  [2 E
#include <mach/da8xx.h>
9 R! T+ n1 r! d# Z3 M) s# X+ F#include <mach/mux.h>* H9 O+ E. t9 V4 e" T: v7 P$ ^

/ \! O' V" j! g0 r' l& `#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); O1 b' x" @5 M2 W6 q( B* g9 c3 q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)' ^& a, D/ x. n* k. ?. [3 ^8 N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). R( _: X8 q! E6 W- h0 v
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; e6 v4 e: o9 ]+ s. x0 {" ~
$ B5 F4 d6 \4 s* n/* assign the tl som board LED-GPIOs*/
! I0 ]8 Q/ J3 o3 G; \3 b# bstatic const short da850_evm_tl_user_led_pins[] = {
  n* T% a, E# w0 l        /* These pins are definition at <mach/mux.h> file */
" |0 z* r0 g/ E& r( |4 N        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,& _5 l$ D& T3 l0 T8 V6 K4 L
        -1
* s0 w& s' \# n# B' T+ d4 d# N};3 B" W5 n* W; K
# c4 n! ?# ~3 m  }) O" B# X
static struct gpio_led da850_evm_tl_leds[] = {
, u: T/ p$ G( K* N0 z- V        {
/ {! y) W( G* m% {% k                .active_low = 0,
5 i( n' C4 j: U9 N+ N! T+ C+ x                .gpio = DA850_USER_LED0,
3 O& t  P, v( s: |! m0 ?9 `                .name = "user_led0",' }+ Y( D' u% F7 V
                .default_trigger = "default-on",
! X% q4 U0 D( ~        },/ o/ q) m$ P; _6 A& i3 F. i
        {! D  o2 A+ p# w6 S1 w6 [3 g
                .active_low = 0,
- O2 l8 Q- o0 N! Z, k% A5 [                .gpio = DA850_USER_LED1,6 r; Q0 u  f+ f
                .name = "user_led1",
! j) g% h+ _3 z% q/ a6 o' \                .default_trigger = "default-on",
, T# N4 k, D7 S1 J1 Z0 L        },
# v& \/ v, Z  @7 N3 D  m4 k        {
9 C3 T4 e1 G! C& n# J# [& f; z                .active_low = 0,' l! X) d* E! I9 p  m' a4 y
                .gpio = DA850_USER_LED2,  M& \4 V+ P8 K
                .name = "user_led2",6 B8 c/ C. L+ U$ s( p
                .default_trigger = "default-on",. I, r# ?: C# M! [1 C; Y
        },) ~2 s* |$ ~: ^3 O" J
        {
2 t+ Y# |, M' n( Q: k, \( I                .active_low = 0,+ H2 n+ o  o/ T; H( c. D  p; ]" F
                .gpio = DA850_USER_LED3,
; r9 l: j- O0 S) h) t& F                .name = "user_led3",6 I- k: O6 [, o6 e# c. ]
                .default_trigger = "default-on",- A# f3 `2 r( ?  L! Q9 O: L
        },
- N4 L9 i: f, g! Y};
4 q$ ^* `: Q4 V, b5 ~( J* M; n8 I) Y  j; O' L7 g
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. I' R( j2 s. }9 S: L        .leds = da850_evm_tl_leds,+ O$ C. v5 G7 G+ D
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 j1 S; W$ t' n. G- W5 B& B
};' O7 W, N" F) E: X) H5 H( w  E# _
- `. ^) u/ S& R( f2 E8 S1 e! o
static void led_dev_release(struct device *dev): [6 u& n' x, ^1 i8 ^- h7 e1 X
{: y6 ^3 j1 P: B" E5 b
};
5 m+ d6 M# q+ K; K5 z4 q/ B& n- W3 A/ e" ^3 W
static struct platform_device da850_evm_tl_leds_device = {
# j% `% K% j/ s! {        .name                = "leds-gpio",+ |9 q/ }5 k% o% n9 r
        .id                = 1,
4 C; A1 o9 r8 M' n$ _        .dev = {
4 ^9 y4 M) l6 r1 a4 J% K" \                .platform_data = &da850_evm_tl_leds_pdata,
* N6 z' A2 B% h5 h                .release = led_dev_release,& y: f0 ^. K8 p7 k2 a5 e; |0 Q. [! u
        }
9 f9 U* u% N) Y9 P5 w6 K};
. P; L; s) }7 }+ D8 S
6 b1 @/ T* H$ }/ M8 o3 Jstatic int __init led_platform_init(void)- {) V* k' x" l/ R6 y& D
{, o: X( Z, @5 ^! Z
        int ret;
* y0 e& j" D. t; |" ?& ^) i; Q#if 0# Z1 z' Y1 t3 F$ i$ l# z( a3 R% d3 O
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 E3 K0 q+ }; t7 a& n+ F
        if (ret)
0 R3 D& r. v7 U( q% V                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! J/ ~, i5 x: z, K( l
                                "%d\n", ret);3 l% U8 @$ K" S
#endif
+ v  p1 n6 b; h7 n; B        ret = platform_device_register(&da850_evm_tl_leds_device);
$ E7 {' n6 B/ m# M9 e        if (ret)  d* l& G. I/ m5 [& I
                pr_warning("Could not register som GPIO expander LEDS");
1 }! V& c3 R. x5 g2 B& p- K7 D5 l8 q        else1 }2 F: i7 }) R' N# `5 L4 m
                printk(KERN_INFO "LED register sucessful!\n");- j5 y! |- y( \4 q1 k7 A) _

. `% a$ C, {4 t/ o3 P6 j2 |        return ret;+ f$ u: C1 q/ B9 k
}
! W8 L0 d/ w  s" u! x2 N% }
4 M" p2 }8 U" Y- E% T! e, @/ o6 `static void __exit led_platform_exit(void)
& m( i' D: S8 \+ l& x, p{
. W3 K7 l- |" Y! J        platform_device_unregister(&da850_evm_tl_leds_device);$ t- |/ r; ]9 t3 O' w

$ S1 Q" D3 P* c        printk(KERN_INFO "LED unregister!\n");! S4 D  {6 r' L0 K4 U' Z* A% }7 L' k
}6 V9 G; D6 D8 [! @

2 t) w6 |* C% o3 f- ~module_init(led_platform_init);4 g& J. d& R( D! r+ _6 o
module_exit(led_platform_exit);
( O6 E* E! ^) D2 x% ^7 E0 c- \& j) m( o# y, r7 j
MODULE_DESCRIPTION("Led platform driver");
: r# |& C; }  z2 M3 D( MMODULE_AUTHOR("Tronlong");& M; C& G# O: h2 f0 n. T1 @- |7 c1 [
MODULE_LICENSE("GPL");8 Y% P! y; k; P6 t) L
% b* C8 o0 Q9 G7 y/ p* _- {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-12 12:09 , Processed in 0.039050 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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