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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, |7 P- }: a$ v' h#include <linux/init.h>
7 [; b: J4 A( P$ ?6 o! ]6 ?/ Q#include <linux/module.h>' h7 I. ]! `- F' t- k- Z+ a
#include <linux/kernel.h>2 k- r* {$ R7 @2 A' A
#include <linux/types.h>9 o7 L; Q1 [" w& D' j0 N$ A6 w) n
#include <linux/gpio.h>5 n2 ^8 ~" B  i4 l& o! J6 A
#include <linux/leds.h>
" a7 o! Q+ j! q8 U#include <linux/platform_device.h>3 g+ I8 M5 {* _, N+ v
1 E& j% |2 t- ^8 n2 x; V
#include <asm/mach-types.h>4 d  F9 w* P5 {2 E9 {" S/ A6 J
#include <asm/mach/arch.h>$ B% O0 n$ s# \' W' n
#include <mach/da8xx.h>
1 U# Z9 A( t4 b& W& J: g' k#include <mach/mux.h>
- s3 Y0 n% Q7 j( y; j1 e' l( B' ~
* [  l( V5 `% j, \$ l% m5 u, U( }#define DA850_USER_LED0        GPIO_TO_PIN(0, 0), ]& G4 b. O' f) [# ?; ^/ W) Z
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)7 }5 i* S9 A. b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& f6 i# O, \% D+ Y
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)8 o. N* I: j& d- R5 F1 ^9 l4 e
. C6 y8 l$ p) L- d: Z
/* assign the tl som board LED-GPIOs*/
* t4 j6 D! i/ I$ \static const short da850_evm_tl_user_led_pins[] = {% [9 ?  e! Q3 s' @" f6 ]3 X* q( I' }
        /* These pins are definition at <mach/mux.h> file */. l0 G+ O4 N, `6 Q# n8 P- \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
  ~: D* [8 f4 d3 g6 h2 N# b4 R- d3 g  S        -1
. K* V8 a" K, }, W+ }};/ n5 j0 u' z. ^* H- K9 b
3 S# O  n: W/ K1 i6 ~3 F* Q! j
static struct gpio_led da850_evm_tl_leds[] = {
+ U# r+ F+ k/ V8 {        {
0 d4 l6 N* y7 w) A7 d, s+ b0 |                .active_low = 0,
4 s8 ^: H! Q3 }                .gpio = DA850_USER_LED0,- z7 i/ H1 g/ c& K* N
                .name = "user_led0",: {* h7 @! \! h* b3 I5 d6 X5 d
                .default_trigger = "default-on",! J. [9 v2 u5 C8 i& t
        },
8 [' A5 {9 y$ |) m# _8 [" [1 _        {
% r( ?) ^1 i) k9 o, o" N8 o                .active_low = 0,' S7 |: H$ p# }
                .gpio = DA850_USER_LED1,8 u& l/ e( m1 I! I3 @  {; @/ K
                .name = "user_led1",; k0 C  q1 }8 W! o) G# R
                .default_trigger = "default-on",$ Y  f2 l* @# Q
        },
+ e! L# W5 x6 a  N; q8 t- A        {; q% [1 U9 Z. d; H
                .active_low = 0,* R- d9 w% _; w1 V# D
                .gpio = DA850_USER_LED2,
7 |- C1 g# @" F9 I                .name = "user_led2",: W, m% \* e8 }# K3 s% V4 a
                .default_trigger = "default-on",% o* d2 ~( c" m1 _( J2 q# Q
        },
: j# T1 f1 O) G1 a$ b        {5 B; D( {% u' |3 ~8 Z/ H/ M
                .active_low = 0,
5 V& d2 s7 c) @) x' k) H                .gpio = DA850_USER_LED3,: l! ?+ o( W: V: m  q# x
                .name = "user_led3",
0 z  X# V1 J/ Q7 G; A$ ?; @                .default_trigger = "default-on",7 D" T* {) _) H) K5 s; N% b
        },: j; k' v- Y2 w: D8 N* ]
};
# \8 k. ?+ d7 i9 G4 W" J
. m3 }1 ?: t5 J; x9 R' rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {7 A2 O$ w" c' O% z- Y1 V
        .leds = da850_evm_tl_leds,* O# ^: q% |. W8 J9 [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ Q5 G; N% X9 C+ n% |& g5 i};
+ Y5 W. w! e$ G* M
8 ]4 U( _& Q& p. p  n4 m5 sstatic void led_dev_release(struct device *dev)) @/ J3 j. j) S) v5 L
{+ R# s8 X0 c5 ~) g( F2 A0 p& v* c
};$ ~( d/ }) h" f; Q
: O' ?9 _1 N6 B# `) n
static struct platform_device da850_evm_tl_leds_device = {
' p, X) w& c& _# {9 L        .name                = "leds-gpio",
' Z( s+ o6 h, O; F, _        .id                = 1,
, T$ f; u% @( ?! l7 M3 p        .dev = {
% W+ I) L0 y6 z3 @% O; {2 u' K                .platform_data = &da850_evm_tl_leds_pdata,. c; R- A4 M6 R3 ^  k6 I* v6 N
                .release = led_dev_release,
" ?- l% \8 z7 `$ O        }
. V) j8 W' b& ?/ i};( R& q+ v, H, h8 b+ b3 W
  L; \* F9 [5 k4 @3 ?
static int __init led_platform_init(void)
, x7 F& g) t& N1 w+ N- u{
8 b4 X7 a3 W) j5 u        int ret;3 m0 N2 H+ Q, F) z' {6 B. `
#if 03 g2 \8 t4 G# a: E2 v! N& P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. f( R  d' K9 y* V( m" w5 x1 p
        if (ret)
, J( A# B3 \" b3 Z; O                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& c. e; z# |- a1 b7 g" S                                "%d\n", ret);6 |% q  w' r* G0 T2 I* Y* `/ j
#endif
. p3 }6 r2 X" P        ret = platform_device_register(&da850_evm_tl_leds_device);& I* z( a. V+ y2 I% ^. U! y
        if (ret)# C. L  f) E' g: z
                pr_warning("Could not register som GPIO expander LEDS");  J+ q; L/ v* u5 X$ F
        else0 _) G1 B1 D9 \" [! v
                printk(KERN_INFO "LED register sucessful!\n");
$ u0 U( ^' g: C: y. ]9 r7 ~& B0 r$ i8 Z0 q- u2 x2 C! b6 ]1 k
        return ret;
$ U6 ^) U* [, L3 m  R}7 P; m  a( m# k4 ?: v

1 ^' Y. v4 ~/ h  M& P1 I# ystatic void __exit led_platform_exit(void)
" j* J# K# M3 w2 g( y. n2 y3 }{
0 i4 V8 B) m6 ]4 z6 q        platform_device_unregister(&da850_evm_tl_leds_device);
; z3 W8 v9 @; O9 c
  j  ?: j, t, T6 ]6 a; O        printk(KERN_INFO "LED unregister!\n");
4 s. X4 Z4 Z& y3 Y9 ^* Z}4 S) C9 ?" s' Y' ~3 i$ y
8 W" Y4 }2 |* V
module_init(led_platform_init);
4 `6 u1 ?/ S0 x* V6 lmodule_exit(led_platform_exit);& c' y4 s4 [- K0 p( M9 z

3 l# D* l) N6 a( n2 uMODULE_DESCRIPTION("Led platform driver");
, R8 `- ^  K8 J' yMODULE_AUTHOR("Tronlong");# l' D3 S) w! _& P6 n' S! [
MODULE_LICENSE("GPL");
/ C! ~7 @6 D0 ~6 y* f) p, j+ D! W- U  A. |& J- E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-11-11 03:36 , Processed in 0.038612 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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