程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。9 A$ `7 Z7 t* W  Z5 g
#include <linux/init.h>
/ S0 ]8 k1 t" K% z$ T#include <linux/module.h>
: G. M) m$ X. B5 A- n( x+ F$ v) M#include <linux/kernel.h>
9 u% p. S+ b# x, |3 J8 P$ ~5 O/ z#include <linux/types.h>8 K0 z- _; w5 g4 W
#include <linux/gpio.h>
8 A; r' @# A3 e6 [' Q#include <linux/leds.h>
/ \9 [  P( k  Z; w, {2 E) b#include <linux/platform_device.h>
) q$ y8 C( J! P, f! z5 i; i# l5 E; Y4 I( k& |4 x% ?$ k1 }; f. F/ F
#include <asm/mach-types.h>( }0 \+ M2 Z! U2 ]3 q8 S
#include <asm/mach/arch.h>  F$ s; b) M- X+ j8 x
#include <mach/da8xx.h>" b7 f. }1 `% R3 ?! B1 J0 i
#include <mach/mux.h>
# ^" a% s% z& _/ ]! x" S$ M. o/ x# R8 e
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)7 n2 c9 Z' }0 G* ?- c$ P
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
& L1 s8 h* C3 H. u3 }1 F#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% c3 S" i: F, F" {7 X  Q( f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
' I7 ]4 l6 S% m* K" m
2 V; `3 ~9 }. k3 l2 {/* assign the tl som board LED-GPIOs*/$ k7 _& @9 u  G& C, H( U
static const short da850_evm_tl_user_led_pins[] = {& Q% V9 m* U# M8 D; F4 t0 q3 ^
        /* These pins are definition at <mach/mux.h> file */
: b9 q% A5 L( G        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,* C7 G$ z0 {, ~" d7 F
        -1
* S& `% _" @! w$ v  Q! a2 P; j: a3 ~5 R% n};; O4 w" F% Q; [& X* }6 j  ~0 j$ u0 G% T

$ ?! M9 b3 \2 P# ^& W2 y( N- Lstatic struct gpio_led da850_evm_tl_leds[] = {
9 i6 B' i7 b/ t5 u, p  V; I        {) f1 z  \* K: a! K; q' E8 T7 C
                .active_low = 0,) i$ x& r' O  [" n5 }) T+ }
                .gpio = DA850_USER_LED0,1 ]. |. x( \: m  L6 z, ]" v4 i. S) \
                .name = "user_led0",
+ o3 g9 s. k3 M, S* b* z" \                .default_trigger = "default-on",
6 v* _6 i7 k$ T. z9 h        },! S' J" c# K: w; x3 Z* O3 C
        {
. o+ B  U. N+ |% w                .active_low = 0,. c$ a" r- F/ p4 M
                .gpio = DA850_USER_LED1,$ p7 w) C5 z' D4 q" Y
                .name = "user_led1",
( n8 b& q- d# P- ]( J/ a, j5 G/ W* {& r                .default_trigger = "default-on",7 N3 x5 U2 y% N1 p( j
        },4 D8 C( g) Q* C, t1 h* e" v
        {
" Q) Z/ c) T' S                .active_low = 0,
7 L8 P/ [( d9 S: v                .gpio = DA850_USER_LED2,7 @; s" N# x; Z3 {" Q6 p- i# E/ T! q
                .name = "user_led2"," q" _: {; S; n# q* P
                .default_trigger = "default-on",; R* Y" h& o* o: O. q
        },4 i* W. ]& J  w' X) f3 q
        {
. [* \) m- S: k/ W) I4 D                .active_low = 0,
1 _- v( F8 T, r& |; K                .gpio = DA850_USER_LED3,
: D8 `& ^1 b$ ~( k- ?/ C/ _                .name = "user_led3",
# T  x7 H. ~2 F, D                .default_trigger = "default-on",; l9 w# K5 G  @9 P1 X6 Q$ q
        },
; o) E0 z1 T( M  s0 [};) H, m  D6 p$ H1 X- a3 u7 X/ W# R4 m

% J' O( }/ }8 H* f9 x; ~7 istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {& J. r  r$ {$ O4 I0 i6 E3 `  }! G
        .leds = da850_evm_tl_leds," x3 e) d6 s9 f% e/ g' U. y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
) a: X5 w: @8 E- y8 F& t% \1 a};
: j* T0 B/ X7 |* F
4 z. o/ X: D; d$ v5 c. V+ Rstatic void led_dev_release(struct device *dev)
- |& n& }  L7 r{
9 ~" z" ?2 ~, l. l0 @};' A" r2 I* p$ ?$ v, W
6 C2 {8 P- }8 w" ]) I4 Y8 [
static struct platform_device da850_evm_tl_leds_device = {: G1 b; E+ e+ c; N0 Y3 Z
        .name                = "leds-gpio",
; P3 c- s! a* ]' [        .id                = 1,
) Y4 I( b$ ?' ]0 G" \3 F" B7 Y        .dev = {
9 G* \( P  u, ]                .platform_data = &da850_evm_tl_leds_pdata,1 R8 `# ~5 ~$ y1 ]$ l3 w0 ^, b
                .release = led_dev_release,
' }7 ~+ C, j" u9 O( Z        }  ?% _% C: Q. }4 f' H
};
9 v! Z% _& Q* D( q2 B& }+ {  J
% _: g. x4 \# x' q9 D; Qstatic int __init led_platform_init(void)( }7 c& K$ u% G, R& ~1 B. y
{
+ g$ [8 u5 p% J% {9 D        int ret;
4 p2 j* l2 |! Y8 P: {#if 0! H; L# M6 \. C- j6 i; k$ G
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! w" B$ j' c% I, Z
        if (ret)$ F  t3 o2 ~6 g( H6 \0 {. V% k
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 e1 N9 _7 W7 \                                "%d\n", ret);
; B( u% S+ I3 {1 B2 u+ o# S7 b1 G! d#endif
* k2 H; J" B5 c. g& B        ret = platform_device_register(&da850_evm_tl_leds_device);! @6 {4 P" O9 t) a7 G8 q. ?$ N# ]) n
        if (ret)5 S- }& j9 W# x9 d; ~- _; X' s
                pr_warning("Could not register som GPIO expander LEDS");1 p# Q, y9 O& \7 U' }! R
        else
+ z# @: i4 {; f                printk(KERN_INFO "LED register sucessful!\n");
5 {9 q. b8 j. f# W! ?
) c5 Q" y6 u7 ]$ ?" T( A        return ret;
6 ^$ b+ A# I; r8 P) L+ h2 A}
! h  Z; e' Z1 \4 g% b
$ d8 T: |+ d5 k" s) bstatic void __exit led_platform_exit(void)( }5 |8 A. B: \, h# y8 D
{5 [5 D1 K; d' B0 C& e
        platform_device_unregister(&da850_evm_tl_leds_device);$ S! t$ @4 f# e! y, _' N$ y

. D/ G$ L. y- t& R3 p9 a7 d  e8 {        printk(KERN_INFO "LED unregister!\n");' `+ W- y* u  j. M
}/ h, D4 x( L, V/ e
8 s) f7 O2 F$ n' v
module_init(led_platform_init);
- e$ r8 q5 w/ R1 L" i! H' A- Wmodule_exit(led_platform_exit);  G  A. {4 r! J, i& s0 x. x7 k

/ ^! w6 ~* Q2 ]5 a7 _) W+ ]& AMODULE_DESCRIPTION("Led platform driver");/ n: A. W, q9 y4 U' \( ?
MODULE_AUTHOR("Tronlong");* G6 B9 Z' k. ]) n2 b
MODULE_LICENSE("GPL");
. k& l0 v! M: Q4 q# ], [7 H& _6 V+ `! |6 }7 Z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-9 07:31 , Processed in 0.039044 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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