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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。/ v! Q9 G6 _$ h
#include <linux/init.h>
3 q" [6 t) y4 Q4 ?" `6 U# Z* _3 |- ^#include <linux/module.h>$ P! y4 w: j/ c$ A; s
#include <linux/kernel.h>, ?) J) O7 c+ _& K  q
#include <linux/types.h>
- i/ h: V5 }4 y3 J#include <linux/gpio.h>
4 S2 S/ o. I: U  U. o4 A#include <linux/leds.h>
: h8 W' N+ K, y( I) G7 O; L5 B#include <linux/platform_device.h>. E; n# Y( R: |4 L4 x2 @

9 u  Q" g' ]; Q) \# i; J8 E#include <asm/mach-types.h>
& w7 j% }1 H+ P6 e#include <asm/mach/arch.h>
7 r. s8 y( I+ r1 p) J5 ]1 U#include <mach/da8xx.h>
% j3 u4 E" p8 }8 B# i#include <mach/mux.h>
$ r) S2 @1 L6 L$ W( _
3 V  o. z4 _; s9 v; d$ _; d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
+ L/ Q$ n, W& j0 f- R: g, x#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)1 u4 ~/ t7 u" N
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ E7 `; C. P& G4 o$ H#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
) G$ c4 L) `2 Q4 ?! l3 C* \( B7 Y' L' ?7 d, p: _
/* assign the tl som board LED-GPIOs*/
2 |/ C  ~: ]( S8 x; |6 w5 ~static const short da850_evm_tl_user_led_pins[] = {, [! E% Z% G/ Q: d8 I
        /* These pins are definition at <mach/mux.h> file */' v: i0 e$ A2 N. H$ Z# T# X) u6 G) t  F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ T, N" p8 L) S$ P$ c        -1
- u$ v- b4 z) M0 }" \};
0 E) |, L4 F  R5 S5 U9 @& \. q
. Q7 A7 a0 |7 V0 i4 L) _( \! ~static struct gpio_led da850_evm_tl_leds[] = {  A$ F. d6 ^  H1 v% R6 L1 _( v9 N
        {
8 [: Z: R& I6 s! M4 x& V& I                .active_low = 0,
, W2 O- A% X7 K0 Z                .gpio = DA850_USER_LED0,, h. l/ L4 y0 [9 K7 T  x3 l
                .name = "user_led0",
! _3 d6 z4 w! @4 u- O3 Z                .default_trigger = "default-on",& r+ E, A4 y/ S" R8 Q/ M$ M
        },5 f% _; ]2 I5 |6 d7 ^7 O! S3 @8 ]
        {
% j1 P" q: U# ]" R- @7 A" t1 d; Y                .active_low = 0,
. L1 K) ^1 C6 f. q- i* H1 r7 B6 M$ U                .gpio = DA850_USER_LED1,' ?6 [$ I: q6 [( {% c+ i8 _# K
                .name = "user_led1",
1 P1 q- L4 I$ ~: b2 Q5 F8 _6 ?  i                .default_trigger = "default-on",  E" ~( d! N/ o7 S% l1 U
        },  S/ ~/ s, i. _6 M. M$ j
        {
; `: |/ l, m2 g0 b! F                .active_low = 0,' ]9 ?2 e) A& G
                .gpio = DA850_USER_LED2,5 W  e: F- n4 n1 U4 \& F
                .name = "user_led2",
8 T1 S" j) H6 F' k4 H# _3 J9 c  c                .default_trigger = "default-on",- w0 g/ H  ?; W9 |0 O
        },
: |$ _. Q9 B( l' P+ t        {7 I, F8 T& y% p. G' }% B; n2 j
                .active_low = 0,6 ^6 |8 g# i& y# V
                .gpio = DA850_USER_LED3,: @; Z4 @5 X9 Z
                .name = "user_led3",1 L  L. G+ v9 ^& z/ @5 D9 {
                .default_trigger = "default-on",
; V, w( x% A  L$ ^' b        },; J3 U" ]8 P: g5 v
};
3 U8 D) r& V& e/ C" i* \& q0 u( y9 [2 S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
* |4 K8 y* i: O& w9 o        .leds = da850_evm_tl_leds,
: `1 k5 e% f0 `' u. @9 [        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 c$ L8 U) Y  w" s4 d; n9 @. \# d: o};" X5 m# {+ s; Y; n7 V8 P4 Y; o

$ h6 B) S. g' m2 }' Ostatic void led_dev_release(struct device *dev)3 U/ q. Y# o) }6 H9 E# t
{
6 O: {9 a2 e$ [5 y" p, E+ k};( A, w0 a1 O# z, u' p# j

) }' T( J. K' w5 b- Pstatic struct platform_device da850_evm_tl_leds_device = {, L4 ?' ^* V9 q/ z; q- B
        .name                = "leds-gpio",$ R6 o% }: @" y$ R. @* f- r4 B
        .id                = 1,
( j1 J( j2 }: ]$ x+ B! m! b, a        .dev = {8 s+ }+ z: y  b
                .platform_data = &da850_evm_tl_leds_pdata,
9 s4 l! l' }- L' `2 ^* d1 m, O4 D                .release = led_dev_release,
9 u2 b& ~0 g( ]$ }' K. X        }4 s# P8 k1 ?0 ^3 W& F
};$ K9 e, e9 c; q" d. `# Q9 x

/ z( p- T8 x; O. V! c# _; Hstatic int __init led_platform_init(void)
5 E; G' x- G& n{
) s' q! B1 }8 S* x& }) u4 z        int ret;
9 a" N* i9 R9 J; m# `#if 0- ^1 b/ r- f' `, r9 C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; ~, v! I6 G% \        if (ret). z* }8 j# b8 c- V8 M; {5 C
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- l5 t0 d/ h1 G7 H: b) X* L
                                "%d\n", ret);: T9 b9 t4 A' c. Y, n
#endif
5 K6 Z) q' L! l! \% l, o  G0 ]0 \6 f        ret = platform_device_register(&da850_evm_tl_leds_device);
6 O# G! z7 P. x; j        if (ret)
+ V1 _$ e) ^+ X                pr_warning("Could not register som GPIO expander LEDS");% D% G/ L5 q0 s3 P5 l4 @$ L' v
        else" n* M/ c2 w' z; _- D
                printk(KERN_INFO "LED register sucessful!\n");
) {" D, Q% a; h4 y! K' _* q
: D# z! E( V" _# S7 G7 l        return ret;
1 m4 n3 ~/ P* o) x3 w  U5 j}
* N2 v7 ]; Y' D, b! D% i
: I3 n" R! `" S$ Z" [3 cstatic void __exit led_platform_exit(void)
1 D4 K5 u$ M2 B) l* X( ]{! x  d; x, b9 c% K9 C8 }
        platform_device_unregister(&da850_evm_tl_leds_device);- h7 }- q! [+ K7 T7 k6 e

# a- l8 C; q) W1 q, F, P8 c        printk(KERN_INFO "LED unregister!\n");
: b" i. s9 k( K}0 `% b1 ~$ [' j5 s% c9 ?: p
6 f# c2 M6 B  ?3 p9 _5 t
module_init(led_platform_init);
. o6 E; a) c! v. U, v7 T0 b  F1 _  @module_exit(led_platform_exit);
2 f* b* C) o/ c; }4 D. K
" T8 U4 I' D, @8 _8 YMODULE_DESCRIPTION("Led platform driver");
8 ~1 H+ h0 C0 L+ q0 rMODULE_AUTHOR("Tronlong");( [2 ]3 z7 {6 \+ |, ^
MODULE_LICENSE("GPL");" t, E2 l8 Z6 Z4 F# D

2 g+ [) }9 w  E+ g/ y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 06:26 , Processed in 0.041181 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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