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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 M/ X7 `4 t, P0 ^! v$ Y' @
#include <linux/init.h>4 e. `: b3 E/ ~/ X. T5 m
#include <linux/module.h>1 Z  q6 V; N2 v  p  G+ M0 T2 ~
#include <linux/kernel.h>
# f- r& H" o! L. p. G1 x0 x#include <linux/types.h>
8 M* K; o/ X" p$ e#include <linux/gpio.h>
' @' U6 m" ]! F#include <linux/leds.h>; Y- B# A6 x$ m- o: ^) y: x/ v. g3 V7 D
#include <linux/platform_device.h>. k# |. n! e0 k7 X: }

) u! L7 k2 g! s- L# Q6 x- F#include <asm/mach-types.h>
. f. C* h4 b) v2 `#include <asm/mach/arch.h>6 r2 u& K8 l0 R
#include <mach/da8xx.h>
$ G5 ~# K9 P. @- j4 S#include <mach/mux.h>% v7 w* u, X- t! T9 Z# o

) E8 ^/ u: B0 ?  y3 F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 G! S6 i# b3 `4 q% n; b6 F$ `1 I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ w- j1 F2 U& `+ X1 I, B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
0 }, G' h5 Y3 h( H8 {8 E9 e#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: k/ P8 L% D7 H3 f. F+ {. g9 {- P8 p' l5 b" |
/* assign the tl som board LED-GPIOs*/: x7 `: p+ C8 a5 j4 S
static const short da850_evm_tl_user_led_pins[] = {  G( C8 s/ X- S+ t# o6 J
        /* These pins are definition at <mach/mux.h> file */% G* n0 P1 X' P: B* k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. C( p) f0 R5 G. N, a1 U9 R
        -1$ q2 h; O# x! H1 W4 B# d
};0 V8 l  l7 ~$ F

3 ~) |5 A8 k3 l9 `2 z3 o( S3 Ystatic struct gpio_led da850_evm_tl_leds[] = {
5 I3 ^- ?& d' }( A0 i        {
& [  F1 ^& C) {% P                .active_low = 0,( }' k0 C% [3 Z6 J
                .gpio = DA850_USER_LED0,9 y4 U+ G  z9 k) L+ L+ p3 ], q$ N
                .name = "user_led0",' G( {7 U( w) g
                .default_trigger = "default-on"," i+ r! t# a+ d- r
        },
3 B+ X+ ~: B5 R$ }; l0 U        {5 x* _; }7 I( Z$ W8 ]$ [* b  D
                .active_low = 0,
& B* p( P7 h' N" q+ t( s& s+ A                .gpio = DA850_USER_LED1,
0 z  N5 k" k" k9 N9 C                .name = "user_led1",
# _) e) P; ]- e6 y                .default_trigger = "default-on",  _3 ]3 s! |$ Y. u: d
        },
% @0 ?: D3 [( q4 M! `4 n" x! q        {
* {3 Y; K" k% D' }  R/ v- g+ ]                .active_low = 0,
- f# z: l" N/ ?' R3 |                .gpio = DA850_USER_LED2,% U3 T( K5 h" ]& ~( E
                .name = "user_led2",9 _; c0 X% |- F# G1 M
                .default_trigger = "default-on",4 w$ |$ C! D( `5 M& h3 K2 ~4 c
        },
5 u5 B0 p$ d, \* x  V        {
! W+ n8 n4 y0 _! ?4 K                .active_low = 0,) T; k( j/ I" o2 O; N5 W
                .gpio = DA850_USER_LED3,
/ c1 x. a" m  I2 a6 c1 @                .name = "user_led3",
( @( h, C! O5 I; B1 g/ J                .default_trigger = "default-on",! W* s3 ?5 Q+ H2 `
        },
2 D* j8 H0 Z% A  A- o/ i* @1 ?};
) u2 _/ U4 Y8 D; E3 C+ M% [! D' m& I( r
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, A7 L. }! C3 ?. U  m. o2 L        .leds = da850_evm_tl_leds,5 r: V: Q" C: l; [: ^7 z
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),$ v4 r, [/ \5 p# q  C
};5 }, a: l) l2 r9 m

& b& t0 G7 Q: \2 tstatic void led_dev_release(struct device *dev)8 O/ m7 d* d& m
{- C1 C( G( }! @& m! K
};
8 Z3 @2 Y; d$ r2 {1 P5 E/ [: G- C9 V' @) G/ p: z8 M
static struct platform_device da850_evm_tl_leds_device = {
$ g( c. Y0 l) A2 G4 _) g        .name                = "leds-gpio",
% P% w: B, ^5 N$ d2 y  t! P: X        .id                = 1,, z$ x: j5 d5 v6 M6 Z) \
        .dev = {0 e9 K" P9 Q2 C$ ~* a
                .platform_data = &da850_evm_tl_leds_pdata,. d% {1 r1 W% m  J
                .release = led_dev_release,
) j+ j3 ~, `1 o- [1 \" [        }* N( M+ F( f0 {, {2 K9 f- r, D
};2 O" C! a7 K/ S/ a; w

: G6 N4 h8 w. V3 vstatic int __init led_platform_init(void)2 r5 \  u: p3 K  y5 {2 d
{
4 h6 f8 X* ?1 j* T' }        int ret;. o7 B2 i, V  O( f
#if 08 ^, ^2 Z) s5 g2 S
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! Q: _$ Y9 ^  t* o% G        if (ret)
7 m+ Y# q' B% P! b% o% B* W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"' o1 T) u5 G: t; S8 z9 p' @, F5 J
                                "%d\n", ret);' h+ |- d2 C& v9 p% m5 a* G0 \
#endif9 \3 T' p7 f6 W5 }2 i
        ret = platform_device_register(&da850_evm_tl_leds_device);" Z; k5 v. L) q+ V2 P! P, O
        if (ret); U! w, P/ |. w- y. \4 {+ J
                pr_warning("Could not register som GPIO expander LEDS");% w2 g3 T1 f6 Q$ F& G
        else0 J( ~  W* L9 O1 l
                printk(KERN_INFO "LED register sucessful!\n");( O+ J% _  u8 d1 H5 x! Z1 y

! Q* e0 D" l- V5 f2 U        return ret;1 W+ \! o3 Y* j! j/ g
}
( r& ?+ F: j- {. n
. L& h, \' I5 p2 K" A+ u- Wstatic void __exit led_platform_exit(void)4 X' F& [* P. }- q6 _
{
* K7 c- c; F5 ], Q( j# b        platform_device_unregister(&da850_evm_tl_leds_device);$ E4 m, [  T0 |& G

( e$ ~# ]/ h0 t* Y! r2 }* C2 ~        printk(KERN_INFO "LED unregister!\n");
( w4 Q0 X* y; Z9 A# j& e' Q}
7 f1 z( O6 }4 N5 U0 k3 T: z/ J' Y) f) I& z6 z
module_init(led_platform_init);
1 P6 u1 \- H  B4 Umodule_exit(led_platform_exit);# Q6 c. o! H# D

0 _1 t, \7 `" E& R. _  n0 ZMODULE_DESCRIPTION("Led platform driver");. F* o7 j$ h: }% ?# s( T( _
MODULE_AUTHOR("Tronlong");
* }# C6 N9 t+ W$ p4 v, MMODULE_LICENSE("GPL");5 S1 S3 T5 u- j9 C; s

( C. m/ ^  R# d' k- N! Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-26 02:31 , Processed in 0.148570 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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