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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, z# K9 X  K3 W$ j) ^8 G) |#include <linux/init.h>: H2 e- A+ A5 z* D1 s2 R3 G
#include <linux/module.h>
; {9 e) Z6 \0 M4 e- U( _! k" |#include <linux/kernel.h>5 U; }5 P' Y# Q! S8 u5 U$ v
#include <linux/types.h>: [' a: b! `2 c# Q5 }6 o7 e" _4 N
#include <linux/gpio.h>
3 B+ [0 Q1 I7 m/ H) x  E# w) s#include <linux/leds.h>; @+ q  o: o6 _# ^7 Y
#include <linux/platform_device.h>
- t( l* i( `3 @
# q- r9 ~4 I. y) j#include <asm/mach-types.h>! `' X  ^% `/ @
#include <asm/mach/arch.h>
5 ^2 {0 S: j' Z/ |+ k4 f8 G#include <mach/da8xx.h>2 S' k# }3 x3 k5 H& M
#include <mach/mux.h>% G: J. X( ^* v; m$ m( W6 u

9 V% w+ r3 v6 g& e, ]. r9 f% [/ \#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% L& V6 s9 T2 ^. u
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 }/ B9 ?) K9 f! d' [$ x4 w" B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 D* l4 U8 ?% [( e, V- {+ J# V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)6 _; |" A5 b+ T9 g9 ~3 h7 m) w

# k6 d) y7 F; n9 l8 w7 n1 u3 Y/* assign the tl som board LED-GPIOs*/( L5 e  @3 t! D4 v3 J
static const short da850_evm_tl_user_led_pins[] = {
0 p4 R3 _5 G+ X0 E2 z' X; f        /* These pins are definition at <mach/mux.h> file */$ v3 ?9 v% d. d8 z- ~0 h/ U0 g% A
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,0 j8 n6 g# T7 G1 A0 R7 q
        -1
  e- p! \5 T" x2 H8 Q# [1 s. p};6 V8 Y5 b( O( `- t- X
/ g2 r* T. Q1 C+ L9 k1 G( i; `
static struct gpio_led da850_evm_tl_leds[] = {, Q0 Z6 C" z" ?  b- @
        {
& g# h9 S& L+ b. R0 X                .active_low = 0,. R: \( b4 _" E1 H
                .gpio = DA850_USER_LED0,7 \! {, h: p& L
                .name = "user_led0",# W2 ~: B2 B3 E. x# e5 I+ c+ E% P9 u
                .default_trigger = "default-on",
5 r8 O7 G3 X. ~+ d% ]4 s        },/ |0 g7 k! z2 r/ y( b2 y5 `' e7 s
        {( d1 t5 S) F$ [, U% `
                .active_low = 0,4 x: |  ~) _& W# @6 [5 H1 V% w
                .gpio = DA850_USER_LED1,
8 _) |  J, v" y# X; E! B3 w                .name = "user_led1",+ o/ H. W( Y, b2 d$ h* B7 v, ?' G
                .default_trigger = "default-on",8 u+ h5 a3 a; j" z( \8 c# L: I& R
        },3 W8 h) J; o2 P$ i9 Y  L) ]7 b" j
        {
4 p: x6 l! e' h                .active_low = 0,+ d) ^+ u  ~" N$ h7 M
                .gpio = DA850_USER_LED2,
0 n* X" n. Y' E* N- R                .name = "user_led2",. _$ p2 F7 L6 D; T9 i
                .default_trigger = "default-on",
9 y; @8 N( E1 ?& O  s2 Q6 M  |        },
  Q0 }7 B; f$ @$ I        {+ X" f$ |; ~$ p+ A9 x- j$ x
                .active_low = 0,0 A* U) M- f* w7 i) @/ H
                .gpio = DA850_USER_LED3,8 n$ D& m# V$ z
                .name = "user_led3",
  y0 `$ _- Z# M  ?                .default_trigger = "default-on",# o: p7 X" k% q) R: H$ e3 ]
        },: S6 V; B2 I- B0 f9 S7 f
};9 y; y- R8 C) I, O: c" q

  B8 m$ }8 B+ W- A3 Fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
6 ?9 ~- l0 K' y- N9 Q        .leds = da850_evm_tl_leds,& A; m8 g# o" O/ e5 S& C4 ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 d, p) h) c4 f5 \" F- R};- Y9 u/ @& I, Z- t5 u  z

" r* {0 Y4 C6 M- J* f2 {% fstatic void led_dev_release(struct device *dev). U$ a; C: {9 E9 S' b
{: U0 Q2 U3 J3 z5 W  e! t8 K
};
! e% U' N, q* h2 ~: P' |
, u0 x9 w0 [7 R4 `+ x4 ]static struct platform_device da850_evm_tl_leds_device = {
( n3 d/ V4 E& o5 m3 u5 \        .name                = "leds-gpio",
0 s- G4 x" x- U0 K0 ^1 t- W- J        .id                = 1,* t$ u# R' Y5 S& T5 }
        .dev = {
. Q8 D; R( a) R" Y. r                .platform_data = &da850_evm_tl_leds_pdata,' J( ?# ]7 |! J6 [+ H( C
                .release = led_dev_release,, {# }7 S, R1 t$ A0 S
        }
9 h( i8 k& p$ O. q* Q5 T/ i. d/ E4 S};
! j0 a  D* j, D2 Q1 K& I& G( m/ ^7 V' O
static int __init led_platform_init(void)* O8 L; o( k. D7 k
{
% G5 D: w! h& d, A+ ^* j; t        int ret;
( T& m1 i6 R4 T/ R2 V#if 0. M5 @! m' z! k$ y, X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, g( q, H& W+ s        if (ret)
- r$ y/ w' O1 y" @                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"# G: ?: F6 A) E8 _
                                "%d\n", ret);
$ i2 b6 n5 X5 A# L$ C#endif) Q, M) p+ Y8 [, @
        ret = platform_device_register(&da850_evm_tl_leds_device);
) o1 z/ G. y, U( z5 }$ H1 C+ N4 O! O        if (ret): ~4 S1 b3 u( Y+ L/ D
                pr_warning("Could not register som GPIO expander LEDS");
# `! v" Y" y0 w5 }" r) ~        else5 L3 d+ A0 M1 `1 h1 a. A( i% {
                printk(KERN_INFO "LED register sucessful!\n");- S/ A; s' Q( Z3 M( z
+ c2 }2 @, M5 k3 x5 u
        return ret;, G- i' a$ J. t1 c
}
9 V' u7 a$ N0 h% W& d  W& A1 ?  d# s, h, v& e4 j5 l6 S
static void __exit led_platform_exit(void)7 }3 W3 b. k4 x" O  l1 |9 ?
{
; A4 A4 _7 a9 D3 l) k( n7 |5 P        platform_device_unregister(&da850_evm_tl_leds_device);& O( f9 {8 d. `4 T8 I

1 d3 p2 X0 X3 Z' N% ~% f, N: G        printk(KERN_INFO "LED unregister!\n");( L. v' P0 M8 ^( ]
}( Z! Y$ U: ]( ?& o) i8 W

0 g: m- F% g3 O+ J7 i. H4 h" nmodule_init(led_platform_init);
; d- U$ G/ W# D+ u( Tmodule_exit(led_platform_exit);2 h$ t% L- D& G: T( F8 X! {
( J5 ~& w; Z! B6 a( {/ ~$ {
MODULE_DESCRIPTION("Led platform driver");9 @5 ?, V; d# w
MODULE_AUTHOR("Tronlong");6 w6 `; B' w) ^
MODULE_LICENSE("GPL");( s! v8 C, ~8 u, C( }9 [. Y
5 |/ ~: T. ^$ h7 I; ^7 E9 H/ e7 Y8 u9 F
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-29 16:20 , Processed in 0.042419 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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