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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. t2 U. [7 S4 h9 ~
#include <linux/init.h>
7 Y! h& V7 f2 P3 s% i6 @#include <linux/module.h>% O& y& ], ?- A% o
#include <linux/kernel.h>& ^3 i2 Y/ \+ c$ C7 \
#include <linux/types.h>) d" j& D( a! E
#include <linux/gpio.h>& U8 ?" b7 l$ l  F  t
#include <linux/leds.h>2 [  w, N- S' R' R; o, \. E$ j; Q
#include <linux/platform_device.h>2 }! F3 e5 ~- ]( P: a( m
8 z! \! @/ n. i2 e! M/ h, \( S
#include <asm/mach-types.h>
3 r9 ?7 R# y/ l$ Y# ?1 @#include <asm/mach/arch.h>  F* t4 z! I9 ?8 n6 G
#include <mach/da8xx.h>; c5 N; v) Y1 O8 U
#include <mach/mux.h>
0 z" S9 A* L' l5 `) a9 F
/ ^+ j# h, x0 _5 z7 i3 M#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 d% \4 h' }9 R4 K* p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& T) C$ K8 m9 ?, W6 {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)+ ]- c! F/ u# V% d$ A
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' @/ G: W) c+ x, H* I

$ H; z9 h7 G8 O6 U% P/* assign the tl som board LED-GPIOs*/
( C$ V9 ?" W3 `7 ~static const short da850_evm_tl_user_led_pins[] = {1 x% G7 [, i8 u0 V( f4 G0 I& a
        /* These pins are definition at <mach/mux.h> file */
' ], i6 \9 J6 C- x% `, ]        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,7 T# K5 v( Q4 m+ l1 U: W; T
        -1
6 C5 S! D' L3 x2 I/ ^, q, E};7 f' `6 h; u3 ^2 U
; U7 R% f, b& e5 S" d* t; F
static struct gpio_led da850_evm_tl_leds[] = {# r0 C' P1 x. d( Y
        {
/ h3 w# E" h" ^! ~( f                .active_low = 0,: x( V5 i6 i8 j7 r7 ~
                .gpio = DA850_USER_LED0,- s; N9 j5 y0 w0 T+ W& x
                .name = "user_led0",; M& _5 w& b/ K1 r5 l- I9 E
                .default_trigger = "default-on",
. N( M: M( s6 n* r! G0 b. |9 d        },0 V: M0 w' @8 q. G% n$ ?0 _2 ~
        {
. w* e/ Z/ t4 s2 s* }) _                .active_low = 0,
1 `4 q5 \: o/ _% a2 N                .gpio = DA850_USER_LED1,
. u5 J* V' s+ |# ]                .name = "user_led1",: `, J' J# F0 [4 U; w
                .default_trigger = "default-on",& }0 b. ^9 z; ]5 U- |* ]/ ~# N4 t. Y
        },
% x1 D) S5 S9 `% p( P        {- R  I' m$ v2 k( Y7 \
                .active_low = 0,
0 x+ K. o: A7 A- T                .gpio = DA850_USER_LED2,  c$ @7 g% @8 y7 F% ?3 E' Q
                .name = "user_led2",0 o9 J' C2 ?! {* P6 h# p# i
                .default_trigger = "default-on",
4 R& @3 T' S# R        },4 r0 R* ?' \% m+ _
        {
% n, ^3 a9 U4 C3 j" L4 u                .active_low = 0,  _) ^! |* Q4 Q- E% z; W! X
                .gpio = DA850_USER_LED3,
& h  p" ?9 ]3 _  Q& `; z4 b) t                .name = "user_led3",% |8 T- x/ W- n3 J! R7 _) z
                .default_trigger = "default-on",; o# M- n9 E( J; E
        },& @% g; V. F( g4 W1 y: F
};  U% n: P* U& T0 N% q1 V) K

& r5 w7 V. I+ l9 [; F5 Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; L* b  H1 d, N3 @( n4 A) V        .leds = da850_evm_tl_leds,8 O$ B6 \8 M) Q. _  U$ K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) }/ l" v. C  z& E3 t  q};; D8 Q7 k# _) k5 T

: O- [, e  t$ C/ P2 |" }/ estatic void led_dev_release(struct device *dev)) @! D6 ~8 b* A9 c0 \; x% d. C  o. e) T
{
$ u3 z. W. \* d( ^+ @0 {9 e};8 _' S$ q% A" V( x$ K6 z3 T/ n- N

0 B7 Q+ [0 ~& Z) o  x+ r9 `static struct platform_device da850_evm_tl_leds_device = {
" V4 p2 {4 H* f: l1 V) ]        .name                = "leds-gpio",
9 [! Z! J3 T/ m9 Q6 u, C; M        .id                = 1,
' C: F( p8 j& z        .dev = {' u6 o* m. g& B% f
                .platform_data = &da850_evm_tl_leds_pdata,
$ V( X- F/ r) m/ b                .release = led_dev_release,; X$ b5 a( L- o. Y) c8 P. n
        }( F7 x0 T: G' G, B
};
& e" C. E, g% M- h+ K3 t  r$ Q5 P5 Z! z$ Z" g- R5 f
static int __init led_platform_init(void)
5 }5 I( ^9 w4 W/ A) ~{
! Q7 R1 n3 |. ~6 S        int ret;
( E1 N6 A6 G' Y+ d4 v4 _8 a#if 0
6 \5 q% S5 F, P1 T5 l/ y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
3 v: `) [/ B5 C5 h, c, ?        if (ret)
* F- V9 c  P) n4 y% Y( ]  ?                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 j3 J' X$ E* y8 M9 L4 E                                "%d\n", ret);# r' `* Y  a0 O8 P
#endif
' U! z7 H1 n6 T: B4 Q- G. v: n, E        ret = platform_device_register(&da850_evm_tl_leds_device);
. F; ]# R1 [6 F& l        if (ret)7 F5 X) ^( m- I
                pr_warning("Could not register som GPIO expander LEDS");
* |; j; P1 ?, N: _0 S/ E! f1 d        else
) k! N% Q; ~8 D4 G) d9 Y1 k- U6 t                printk(KERN_INFO "LED register sucessful!\n");% S# g/ U/ l( o8 s0 {; \) v
. L1 L3 ^& g+ \% w
        return ret;
9 r9 R: `- }- E' O}
: D6 h! C0 e1 J* y- ^: c# w# h+ v
static void __exit led_platform_exit(void)/ `( X" d. y- L" |8 `% }' t- Y- e9 K
{
) |, G2 J' S3 R3 R7 [- g        platform_device_unregister(&da850_evm_tl_leds_device);
, ?. k6 L1 ]1 B1 c/ x) g) |4 c' V; ~$ ]" M4 R8 ~
        printk(KERN_INFO "LED unregister!\n");$ X7 v; |* Q( b) o; r' h
}0 w7 a+ I) T$ }  W0 t2 g: Z' x; [
6 M2 Y' S2 Y% S2 E8 g
module_init(led_platform_init);
. T' ]8 [2 n! a' h' |4 @module_exit(led_platform_exit);
* ^$ v7 i% x4 [: h2 e
0 ^. p; O. `7 o  hMODULE_DESCRIPTION("Led platform driver");
0 B: J& L; @, \% G, E2 S, hMODULE_AUTHOR("Tronlong");
% A- D+ x8 T; Y: _& O% Q9 S, A6 J, nMODULE_LICENSE("GPL");5 \  U. O) I) Z3 w- A

% F1 Y; W: T% I- ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-19 22:40 , Processed in 0.040548 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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