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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 v( B. S# ]3 I3 Z; u3 u* a; b! v5 a& U#include <linux/init.h>
5 F9 a* L  q8 o) E- u#include <linux/module.h>
5 p  R) e$ F$ G#include <linux/kernel.h>& X7 }+ @& ]1 r+ p! s
#include <linux/types.h>3 i1 x; Z9 {9 Q( a! q, s
#include <linux/gpio.h>  W. |% G6 }8 j" {+ W$ m
#include <linux/leds.h>6 n2 n4 e/ f+ [
#include <linux/platform_device.h>
7 p" z! C0 J8 F, E: K! o) Z
( f1 S/ W1 [# ~5 [) Z#include <asm/mach-types.h>7 d1 |% t% Y: H3 e" J2 H
#include <asm/mach/arch.h>
& ?; r: G" C" u; W9 s+ b: u* Z#include <mach/da8xx.h>! E+ l/ i! Z8 p1 j6 C6 j9 K
#include <mach/mux.h>
2 o1 q+ }/ j9 ^  f( _6 Q$ _  C  c; Y
9 z% T0 d& U0 ?1 y. z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  A/ Y) D: B) z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
) S4 [0 N  a1 Z5 A/ C3 v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ h1 K( o# x" `1 q, U+ T0 r) ^  q2 `#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* b+ P4 {# `1 w  c. G6 J' Z2 f8 C9 y2 s. x% n1 e3 d9 Q
/* assign the tl som board LED-GPIOs*// A8 N$ B* q. E0 _1 s4 J
static const short da850_evm_tl_user_led_pins[] = {; _: c& B) W9 q+ A( p3 p4 N
        /* These pins are definition at <mach/mux.h> file */' L/ _) o- H" h& t  h" g) r- t9 b
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,. M, u4 Z- ^; d+ S, g4 `/ X3 B
        -1
1 c! r4 `7 e- W};8 N) _5 M& P, M6 z' h) S6 Y7 y

) n/ F+ n" G* ~9 K: M# V5 Hstatic struct gpio_led da850_evm_tl_leds[] = {
1 g0 k5 `1 X7 I/ j# u* u        {/ H. N, o- U6 I, L1 R! J
                .active_low = 0,& ~7 B: {8 G9 B& E6 R! n
                .gpio = DA850_USER_LED0,) ^/ Z0 ~. H9 R# `- {3 w) c% q
                .name = "user_led0",) {7 n* M7 o+ ?' S
                .default_trigger = "default-on",
' `+ ]) K2 _) X+ R9 C$ }        },
% g" w3 u5 W8 q9 ]+ ]! q% I        {* r  m8 }! Q3 a  \+ ~
                .active_low = 0,
5 O% u8 X) F0 x3 W8 N                .gpio = DA850_USER_LED1,$ L" v, M5 x: `$ q/ W  y  O
                .name = "user_led1",
) [# y0 G; x; t2 q  I                .default_trigger = "default-on",
% G: g1 z: y* p$ k        },; Z* ?. p" N1 F# `7 k
        {1 |& K: i% d# _
                .active_low = 0,
+ D0 U; ?1 l& `0 y' _" |" _" m                .gpio = DA850_USER_LED2,/ b$ e0 r# h0 c$ l9 g" t; I/ y( N
                .name = "user_led2",* Z! e7 o' P  ?) b* \; z6 n& U3 K
                .default_trigger = "default-on",/ P$ F  }+ Z1 S; _2 F9 |) T9 s! \# l) u
        },# v' L& I8 ~+ F/ K; L5 V, p
        {
9 N; k& _# y& N6 J% e+ X( r9 y                .active_low = 0,
, T2 f1 b" H9 b4 X                .gpio = DA850_USER_LED3,
4 e9 e( y" e8 }# X8 V  P                .name = "user_led3",
) D: @8 v  a7 V; |4 c5 b4 g                .default_trigger = "default-on",
. W' X  i, r$ M5 _2 R2 U/ u        },, P) e& \% x4 r6 t4 K% y
};
) b" ?9 _" ~! j6 [/ C: k6 _
( }. |& x. R9 O. J6 ?2 l0 |$ istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {, U4 {, k; ]5 g" K3 {
        .leds = da850_evm_tl_leds,
9 Q9 X* v2 w* q$ j. K        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 ?" U' R# p2 Z};
- K; K8 @. n  B3 c7 [' G& f- V0 l$ W) K" \1 X6 v
static void led_dev_release(struct device *dev)* b8 A( E# w! E: z, m) O' e
{8 S  P! m) H$ T$ f* l- v
};
' Z) B  Y7 w: ]+ W: U; e, L9 z! Z
static struct platform_device da850_evm_tl_leds_device = {
% |% Z# T( P! W7 D% y3 J5 p        .name                = "leds-gpio",5 R" [* {& s/ f; L/ V- K. L, g
        .id                = 1,
7 G* j$ A8 x4 y        .dev = {9 O9 y( H3 r! X+ w
                .platform_data = &da850_evm_tl_leds_pdata,0 L6 l% t- {( }$ t$ K
                .release = led_dev_release,' C+ Z$ h5 }- e8 h
        }& u! d3 C9 T" o/ R
};$ s+ N- \' C% ?9 @4 w0 C8 x
4 C& P! R4 Y$ d, O( I
static int __init led_platform_init(void)$ q  K" R. ^. v: t7 l& e
{
" R6 [$ g& ]& t. H6 e        int ret;' Q2 d: }# }5 m/ b' t/ x* r0 |
#if 0( y# h" F; e; b, m6 y$ L
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);1 g  ~4 ]: O/ ~7 ?7 G5 e' c
        if (ret)
) j$ W, W4 E( J, ~  N% Y4 l5 A$ t                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
9 O: L5 H" n+ f, S% v/ e* I5 t                                "%d\n", ret);
4 n1 l3 b- j0 f( |#endif5 V2 M2 o' B. b/ x5 I
        ret = platform_device_register(&da850_evm_tl_leds_device);) ^( u+ e- T" w( \
        if (ret)/ X. d4 y2 \& V9 ?( R
                pr_warning("Could not register som GPIO expander LEDS");
, T% p$ G; n% ~/ j7 Z& V        else* j, C( c' e, r& @# B1 o' N
                printk(KERN_INFO "LED register sucessful!\n");" i. _: k' j* D& w. o* \! u

5 Q# ?6 N% M6 [) W' r, i" f, X! \        return ret;3 x" x: S6 D5 x+ e# O4 j
}
, S* W; C5 l' @9 P9 q! f: x! v' T
static void __exit led_platform_exit(void)
1 A1 T6 b& o8 t: D' {+ f{1 ^- C4 B* D# C" j7 d- r
        platform_device_unregister(&da850_evm_tl_leds_device);/ B3 I' k& ^8 x3 c; I. U
) {  G' A/ v6 a8 r
        printk(KERN_INFO "LED unregister!\n");& w$ V2 d( X; B5 B  e* {8 m
}
9 ?: i3 n4 ]% A2 K) O" _' _. T3 j- f+ ]9 s" O
module_init(led_platform_init);
! J, W& W& s7 wmodule_exit(led_platform_exit);8 T$ N& o" ?% u) P5 q$ d0 e

9 e# J6 R; j' e* b: ^MODULE_DESCRIPTION("Led platform driver");
' Q! Z( a8 s* N; q+ d" ]MODULE_AUTHOR("Tronlong");
) p3 i2 f- I) o, EMODULE_LICENSE("GPL");) V+ m& z1 y- Z% K0 \% \3 X/ C
. _( ^3 k3 m+ J% i8 C" B
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-29 17:34 , Processed in 0.048794 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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