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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。' A: o  a/ p- g- v% |
#include <linux/init.h>/ p, S6 d' \8 }9 `
#include <linux/module.h>
9 b' ~  I( p8 x9 [6 x#include <linux/kernel.h>* g; P7 q5 x. ~9 B& s$ m+ [
#include <linux/types.h>' @* C* B4 q" ]: }( W9 r
#include <linux/gpio.h>/ k- O- b* t% ^+ a
#include <linux/leds.h>
/ e$ O5 m, U' i  N( T+ _+ g3 A#include <linux/platform_device.h>* z! E1 S0 W9 q1 O

9 e, T7 f3 S! d! s! f#include <asm/mach-types.h>
2 R* g3 M" u& {#include <asm/mach/arch.h>, N. B" R- ^/ Y. S9 j' M8 {
#include <mach/da8xx.h>: Z2 {$ X+ R2 C+ \% S
#include <mach/mux.h>5 J9 ?; G" B; q( l. T/ C

  C6 O4 z, P; V8 c" k4 t2 {#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
9 y  R8 S9 g8 {0 n; O( a( b#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
0 n7 I% z( O3 q  J. [. t#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% R* T' w# }7 n
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 G2 B2 H# `0 F9 G4 Q# J* S2 R0 ?: V) J
/* assign the tl som board LED-GPIOs*/3 r" Y1 g! k8 T8 K8 P; x
static const short da850_evm_tl_user_led_pins[] = {
# u1 A" g) Y1 E% ^2 y5 v( x        /* These pins are definition at <mach/mux.h> file */7 X- m- q, n3 D
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ V( F  K" r% l
        -1
  Y/ H& a5 c& ]) E1 `) I* V2 R! O; |};: r% e# z, w1 I1 J! r+ g( K3 G

9 O" ]7 T' o& d! P" n5 {static struct gpio_led da850_evm_tl_leds[] = {
" R: l. E: a( m# N& L6 ]        {) {" g6 r  J% ~& F* _
                .active_low = 0,
) }" b" v5 k1 T/ ^* L  D+ g                .gpio = DA850_USER_LED0,
! g: ]  ^$ t. N* A9 H                .name = "user_led0",
- v/ ?) Q4 e) q2 C                .default_trigger = "default-on",& z2 ]8 k+ w5 m
        },
  ~% f5 P$ T9 E6 o  y7 K. d! c        {  D5 j4 K, f/ Z( E
                .active_low = 0,
7 n8 A+ R7 v0 E                .gpio = DA850_USER_LED1,7 o' O# ?$ u" P3 ]
                .name = "user_led1",
# f8 L. U2 V/ X, r7 S- E                .default_trigger = "default-on",
' j& Y# M& i- q& f) b        },& h& u3 e7 Y) i: S4 S& D
        {
; s! G$ |% c" z5 t  C' G                .active_low = 0,
, |* |2 S2 L9 u3 R) Z+ E                .gpio = DA850_USER_LED2,. B* U8 U" Y0 V" p+ D7 f
                .name = "user_led2",
$ U' \: l* B7 l" ?                .default_trigger = "default-on",: ^5 d; W) G, ^5 I! m
        },; y, y' a3 P1 s
        {* Y6 T  M% _! T* V# Z
                .active_low = 0,: B# e7 ]# |' u7 s3 h8 ~: }
                .gpio = DA850_USER_LED3,7 ?( Z6 M, L0 x
                .name = "user_led3",
, D2 Q, n. }' W$ i9 y$ a                .default_trigger = "default-on",
% h7 e( A5 }( B% i# {        },
# J- w2 k- o, v};. R" s5 `3 y; D5 q; Z& P3 z

1 K" j1 c+ ?5 M7 c& X. Zstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 J' H* B3 E4 \+ g* A0 C4 V8 P+ }2 R        .leds = da850_evm_tl_leds,
' ^6 I1 f$ ?6 {% F2 O        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ T, |% z0 e/ x8 G+ Z6 O# g: M};, F3 X$ Y& {! Y) O2 e, R; g
$ O8 F9 S3 H$ O; t2 e
static void led_dev_release(struct device *dev)( A1 c# K2 X- h. _
{3 O1 [3 ]( k: t9 q/ @$ Y
};9 I1 n/ U* s+ B& `3 r

/ x7 e% Q) }" N9 x! ystatic struct platform_device da850_evm_tl_leds_device = {4 K: U3 i, _7 n' e, y7 ^
        .name                = "leds-gpio",
- B# @  b+ A, n2 o$ b1 T        .id                = 1,2 |% j8 H& F: C! b  l- }) ~5 G
        .dev = {
, b; _/ Z3 l3 G; D  j$ n                .platform_data = &da850_evm_tl_leds_pdata,
) w! X4 W6 a/ i+ _5 k& S: t7 T                .release = led_dev_release,
; {7 J1 s1 o# R' W7 X. J        }
* M2 R$ P0 X3 K/ s};. b  C3 n5 W. G

0 H  A  s4 x4 b# V' G$ b! j) v" Pstatic int __init led_platform_init(void)9 k3 b; q( `3 g( r1 c
{# D6 h0 I+ ~  P# W8 x
        int ret;
4 k5 h2 u3 K( H) e" U#if 0/ {( ?3 j3 i. t0 i5 O4 K$ S$ j) j
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);) \1 h  l! k2 N' r( Q) h
        if (ret)  H. |1 o9 P8 B
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ m. L  m# H7 I% m" I- l% {% I
                                "%d\n", ret);% K  A5 I1 @3 T1 t( x$ t# A
#endif3 R+ X' J; n( Q. W
        ret = platform_device_register(&da850_evm_tl_leds_device);7 G) }. r0 R$ ^  d
        if (ret)
! ^! {/ u8 \3 _2 I2 M# o                pr_warning("Could not register som GPIO expander LEDS");
% A" t: A) h0 W3 w& n1 x( n        else$ G, n/ N2 ?9 E1 o
                printk(KERN_INFO "LED register sucessful!\n");
; }/ H# m: k3 M0 w+ @( k
; L4 J+ @3 C" H* }3 F( ^        return ret;
9 d: O8 s" w- X3 X0 m7 M( N' i}* @: N0 o  c- o5 u: y
$ k8 e  g- ]& _/ p  G$ Q# Q
static void __exit led_platform_exit(void)& R, a9 i# O& l7 X5 s+ P9 c
{" K  ]3 ~. \2 z2 m
        platform_device_unregister(&da850_evm_tl_leds_device);
" {  k8 R$ Y, z8 u; z! L) a
2 b4 T( s6 I1 E" o        printk(KERN_INFO "LED unregister!\n");' Y! Z$ I3 n2 Z, z
}
5 m3 _5 u# ?$ H2 W8 C. Q
4 |/ K, {" x) `+ z2 zmodule_init(led_platform_init);# e2 ^; T8 @* s' ^  c
module_exit(led_platform_exit);5 o* j2 C6 N, |$ E5 M' L8 J

, v+ q& b+ r* y/ k& HMODULE_DESCRIPTION("Led platform driver");4 a) Z3 C4 ^& N- f& M( y+ x
MODULE_AUTHOR("Tronlong");
+ ~1 w' P3 T3 c. dMODULE_LICENSE("GPL");
' r; {- P" x! Y0 X3 U1 k( G  T( }1 x6 ^4 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-20 15:38 , Processed in 0.039173 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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