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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
% {0 B6 X+ g) [' U6 O# @  L#include <linux/init.h>  A4 G% y7 g/ [  S8 k
#include <linux/module.h>
- W5 [: f8 U) u6 l9 J/ ]#include <linux/kernel.h>
! o  s( s2 O9 U2 e+ T# B#include <linux/types.h>8 g& U! }/ u7 }; h, @. X
#include <linux/gpio.h>
" {% R/ L5 m. U/ }1 J+ M! o( A& b#include <linux/leds.h>  ?9 _) g+ D" J  C. A
#include <linux/platform_device.h>$ q% L7 ?* w1 z
7 f1 B) }1 _: F* \+ D
#include <asm/mach-types.h>. F# U3 @9 X: o1 g
#include <asm/mach/arch.h>' K5 G) ~" \& e+ f0 N' v$ Q! @8 X
#include <mach/da8xx.h>
- ?4 R0 t+ i& q% k) `0 y4 @4 l#include <mach/mux.h>3 V  u( Y. F9 h* ^! M9 ]( M$ ?, o

2 u+ z- V8 x& ~: ?, p1 R; b#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) x8 B- e0 V0 x8 ]#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
' M1 [5 S6 p  K6 h4 t& Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)- B8 ^' {+ n& L
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
& Z6 ^* S, F9 ?' C2 |& @8 w9 F( r$ a7 z5 D
/* assign the tl som board LED-GPIOs*/
" h( e$ ]8 s2 B" A. a/ B+ y& h9 |: sstatic const short da850_evm_tl_user_led_pins[] = {8 t+ q% F& r% M7 W7 v. F$ [
        /* These pins are definition at <mach/mux.h> file */
6 w# h7 z+ C8 o+ F& K& q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,- t2 Z: l* A  z' L
        -17 Z, ]2 E0 R" \9 B& D
};
3 U& a. i: v! I  `/ A
0 z. \4 H/ Q% astatic struct gpio_led da850_evm_tl_leds[] = {8 B: @* P. o8 h
        {3 E0 }, a5 d1 \- j* O
                .active_low = 0,1 j3 l: `# _4 e( B; W# `7 t
                .gpio = DA850_USER_LED0,
1 d* u. x4 i1 g7 u                .name = "user_led0",
& I6 x3 v- Q; E5 \# z                .default_trigger = "default-on",1 U3 `4 s/ s- v' e3 y
        },
" l8 b% \# {1 c2 t$ l% Q        {
6 a8 _7 n& V) I+ n' p                .active_low = 0,
) J+ p) F  O  u                .gpio = DA850_USER_LED1,
' H% V9 k$ \( O, B( N: g                .name = "user_led1",1 H3 @9 W8 V# `3 R5 I
                .default_trigger = "default-on",& W0 u8 U2 N+ I
        },/ ~% `* g) `$ d5 t# j+ K
        {
8 v/ I+ u9 T- E) @( ?                .active_low = 0,
7 p* S( _4 n% z, S                .gpio = DA850_USER_LED2,
  K! x% }: `% r+ W! e& M2 ^+ _, }3 [                .name = "user_led2",
- t( y6 m3 N) g                .default_trigger = "default-on",* s1 R. ^. J+ A, C6 t
        },' r  Q' d& h1 R; r" t8 g
        {- W# C; W* u9 K! G/ [4 m( @( s" |
                .active_low = 0,) [& s! o: [/ R; D: u# `
                .gpio = DA850_USER_LED3,2 b5 @5 i+ n1 f" [. }
                .name = "user_led3",
) @4 C- q9 X! @( H' [5 w/ i) @7 M- C# [                .default_trigger = "default-on",
6 k; P" B& V3 J  G3 O1 r7 n9 B$ s        },3 h# C  L' [$ W; k) B5 U# @
};
0 D7 Q) z3 ?6 m( u5 i& m% \
# p$ r8 k. I2 z# z4 a0 ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( ~( k5 V9 ^, L1 n$ H/ g4 z) W" }1 J
        .leds = da850_evm_tl_leds,
  G, v2 B  e1 P0 q        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, ~) U, @% y1 Z0 ~9 y% ~- K1 d
};( c' w# X' d/ M. B4 {) }

* V  n$ D, F: z. A6 Y5 X3 qstatic void led_dev_release(struct device *dev)# b' Y6 F" w7 @/ ]2 n0 N$ D
{
: e4 R3 p" W* E};
6 y$ ^9 ]' S. E" S; p! r0 H) ]% z. N3 g" ^' W3 Y/ v/ x/ e
static struct platform_device da850_evm_tl_leds_device = {
" V3 r1 `9 j" Z  L1 G' z! y9 \" c        .name                = "leds-gpio",0 ]$ x* U& t; [; P  i, }
        .id                = 1,
! f( Q5 r8 ^) @: r        .dev = {
4 s; J& J( @7 \/ c: q+ ~                .platform_data = &da850_evm_tl_leds_pdata,
2 R( x6 N2 E/ T$ ]                .release = led_dev_release,/ s$ D5 o: x9 g6 n
        }5 F* i2 ^9 q1 }0 W+ M
};/ F6 @; g1 Z9 Z! P: @$ `- W" |6 p

+ P8 Y7 Q. b( L2 v, i; C' ~6 Kstatic int __init led_platform_init(void)
0 N& m& `! u# o2 z7 _. X0 C{  k2 q3 [2 C* K# j1 c: D6 j
        int ret;$ E* |* _* ^6 H& f
#if 0
' z- o  a1 y+ }2 A; t" j' `9 b        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. W5 I! d' N" }* ^1 r        if (ret)* [  M0 R- z8 o  E( |
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ G0 M. B8 X$ F9 d6 O
                                "%d\n", ret);  E, v, F: |. P" ~6 T5 L
#endif
' n7 b3 \3 Q7 F% y1 d  b6 v        ret = platform_device_register(&da850_evm_tl_leds_device);0 m0 \7 T" a# P% A( n" p# K
        if (ret)
$ l/ Q" ^# n: p4 i) A( B                pr_warning("Could not register som GPIO expander LEDS");
1 c! U9 Y  d8 o" G+ _" r" c0 ^6 Q        else
5 M) F* G: O$ m3 d                printk(KERN_INFO "LED register sucessful!\n");
& A& Y5 @- m) C, S) X2 _& T
/ M& B! \3 \& R        return ret;
- T, L8 b8 |! r2 ~4 J, L( f}
6 L# o( A# W) e( \( W
+ g7 r2 |* q- C4 fstatic void __exit led_platform_exit(void), o' s) K6 `9 C+ O) K; C
{1 l/ z4 k5 ?( ?3 X( q6 Q( y$ m
        platform_device_unregister(&da850_evm_tl_leds_device);  N' U8 R  j  x) u% X) S
6 f; B+ @3 @% h+ x3 M. s- T) _( |; b
        printk(KERN_INFO "LED unregister!\n");' n9 q( X0 a: c( ^% e3 E
}
, G9 K$ D) E+ A) \: D, K
$ e* {1 P, R/ Z% @% q$ A- `( I. ]( cmodule_init(led_platform_init);
1 p; h4 s4 m/ u' G, g& k1 q' imodule_exit(led_platform_exit);- L6 W- l. H9 ]. s
+ C7 q0 [+ A/ A; A8 {7 f! A6 u- \
MODULE_DESCRIPTION("Led platform driver");
  a  H9 R. p' ~- ]MODULE_AUTHOR("Tronlong");( y8 E6 p/ C1 q# E3 q3 L9 A
MODULE_LICENSE("GPL");
9 o$ u- H6 `3 F& ~7 D3 ]7 K& ?5 H* \
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 13:15 , Processed in 0.038592 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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