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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。  g* Q1 `/ g; ?, l' L, c: w
#include <linux/init.h>! S1 b! _/ G6 m5 G9 K& i
#include <linux/module.h>
8 v! t3 v" J; ?* K- @5 ~+ a4 C3 j#include <linux/kernel.h>
5 N( u. K2 X4 O2 s#include <linux/types.h>4 F0 r; W# ~2 X9 @0 z
#include <linux/gpio.h>7 j, f9 {% {. d' x( Y2 j
#include <linux/leds.h>; r  J0 F7 M. E" D) v0 u, F9 c3 a
#include <linux/platform_device.h>
. ]" |  M, a( ~5 r0 f  Q
+ w( X4 u3 E. q: n( J' H/ x) }. V#include <asm/mach-types.h>7 f* Q0 W7 J: k" A
#include <asm/mach/arch.h>
: G1 [  ^! e/ A; b0 v#include <mach/da8xx.h>
' M: e( C6 `! n/ Z  G#include <mach/mux.h>! @5 G5 d& O8 F3 E  z' v2 |3 D: s

! r/ k( ]/ j" y; m& O9 S$ t#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  L* W$ E, T8 F8 ]; w+ w! c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
! ^; u9 O1 A6 o! M& }#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 T; ~- n* a6 L/ E. Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 m3 o4 k1 D( ^/ `' W, C9 g2 i7 U& T% F" s' l
/* assign the tl som board LED-GPIOs*/, ~1 l" ]  F8 J; L
static const short da850_evm_tl_user_led_pins[] = {6 ]  V2 b+ c$ {( d: q! _! _
        /* These pins are definition at <mach/mux.h> file */& a5 f% H; L' ]9 R
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
( ?8 s6 R8 Z% R/ Z! Y. S0 |        -1# {6 I6 b8 u" J1 I
};
3 _" Y4 s3 n5 }
" Z, e( p, R: `' a  T% Ystatic struct gpio_led da850_evm_tl_leds[] = {, k( p0 X+ j& z
        {
6 I* p, f& `" P4 Y! Y                .active_low = 0,7 w; }% M2 E8 t! C
                .gpio = DA850_USER_LED0,
% z  y0 u' _+ v  O3 _' d                .name = "user_led0",
& P. D1 t( Y# Q7 r                .default_trigger = "default-on",% U( i5 B+ @1 B$ f, |8 b" K
        },
  S: O7 l6 s' N4 ?        {7 ]/ t/ U) e0 ]; q6 I3 p* e
                .active_low = 0,
; U+ W+ f7 G- o- B: |+ j                .gpio = DA850_USER_LED1,
. S% n& W9 e2 g# z; f                .name = "user_led1",3 [) r% C3 S1 k" I' E- j
                .default_trigger = "default-on",9 i3 P* E; o" g9 r  Y# N
        },
% ?# l# u0 p& I% Q2 Q3 v        {7 |6 o: {- I- S1 m" s1 O
                .active_low = 0,
0 e. t4 ?0 z8 i0 N! j                .gpio = DA850_USER_LED2,
: ~) k5 t' Y% u# q7 ~) \" B/ {% r                .name = "user_led2",3 ~, `! }0 R3 |' q9 p
                .default_trigger = "default-on",
8 K6 ^+ [: C% J) L( a        },
" Q0 J% U1 k" V& K        {# z6 c, l9 }) }% Z/ {
                .active_low = 0,
7 A$ u! W9 Y3 A7 n% O3 j3 _$ {" j                .gpio = DA850_USER_LED3,
$ v# u! D: G* _                .name = "user_led3",
: U7 [7 r4 C) u2 y9 E  m                .default_trigger = "default-on",
$ E8 q' X) P2 W( E8 L        },' \+ l4 G# G' J
};. z+ l& e7 V; b. x6 `% X
( i/ j$ B. ^4 E* p) ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 y: ~* L* z# g( s/ k
        .leds = da850_evm_tl_leds,
% T: H! d, i! S, U" ?2 T& S0 c        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),  M8 s# S! `6 \
};
0 a3 ~" R) `- H
0 j+ c/ L* S" a) I/ G) gstatic void led_dev_release(struct device *dev)* h% z; R1 V1 O- x* z
{
) F7 X. T* Y. O/ L};
% R. l/ }7 W/ v% }$ W) o+ _5 e! v% L7 ~5 v7 L( g
static struct platform_device da850_evm_tl_leds_device = {/ d# M4 t1 z& \& q( ~
        .name                = "leds-gpio",
% A- _. |; G4 n0 Y  f        .id                = 1,
( v; j5 f& ~( T+ k        .dev = {
( W( s' K- h7 x. B                .platform_data = &da850_evm_tl_leds_pdata,
1 _# B4 H) {* V4 R! L                .release = led_dev_release,' w/ I( X% W7 O( r4 ~
        }
; o* X, W# @6 [7 x/ [};
! |. L. O& i; _1 x8 {7 ]1 i/ Y1 Q$ V6 Y% m" n  c  O& t
static int __init led_platform_init(void)
$ w+ h# c5 k9 n* V+ _{
+ b4 Q; Q  o7 t1 s0 Q/ W$ N$ s4 N& d        int ret;
2 Q( h+ [* V. E. E' @+ ?: s! x#if 0/ ]* V2 _+ o1 V: q( C
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 x' P0 z& b! Y+ E3 T) O3 O$ E        if (ret)
9 ]7 y8 S/ A* p* O1 F6 j                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& q9 G1 |4 f) c- i6 P
                                "%d\n", ret);
7 i* B6 ?; O% l. Z" l& `7 p#endif) ]: O" E" _) A2 ~% v3 k% A
        ret = platform_device_register(&da850_evm_tl_leds_device);' s) l: x1 h5 E: v
        if (ret)
2 K6 T5 [  U* a2 r/ v                pr_warning("Could not register som GPIO expander LEDS");
/ Y9 ^4 t$ L; N5 a5 W5 [$ S  Q" V        else, K) H; ^9 f9 H; c. p, _# O0 ]
                printk(KERN_INFO "LED register sucessful!\n");: ?( C* q2 ?2 w: Y4 e/ B
; T' @4 K9 d: T: B7 s$ A% I. K5 \
        return ret;6 q) x4 b& p- G. @. K
}
; [/ s: X; N2 b0 C
  @  k) o5 z" ]) u7 Lstatic void __exit led_platform_exit(void)7 P9 `  b5 a/ ~- ^
{& {9 J  @" o& r- c
        platform_device_unregister(&da850_evm_tl_leds_device);( u8 u# u4 @6 g$ c) w$ W

: l+ L9 i/ m8 z  h; W- V        printk(KERN_INFO "LED unregister!\n");4 i8 ^( x0 Q+ `8 [7 ~
}4 b2 W' H7 V5 U9 S+ z5 x
. q* |( `6 v# i- }' H+ Q
module_init(led_platform_init);
1 S4 C: A1 l7 I' w) O. E9 a& Cmodule_exit(led_platform_exit);0 x) z0 t; c$ m4 m" v% ~6 C1 A
# j3 _) d$ l( f) ?+ b" M; H
MODULE_DESCRIPTION("Led platform driver");
8 u$ h( h! T0 W9 e8 i) G9 T7 lMODULE_AUTHOR("Tronlong");, N. C" Z( c( A4 \/ ?
MODULE_LICENSE("GPL");* O! Z7 f+ J6 z0 x& W& o

! r8 i& ^1 R3 R: b6 ]2 t7 p
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-8 17:46 , Processed in 0.041741 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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