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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。; t; |8 @7 z* ~4 L9 r& x* @
#include <linux/init.h>
$ b; I# l3 l0 m#include <linux/module.h>
# W4 _, S; a$ @- g) Z1 [' M#include <linux/kernel.h>9 x+ z5 q' o5 S) Y* Z# s
#include <linux/types.h>
) x) |9 n* T1 h, I. B4 b. O$ |#include <linux/gpio.h>
$ I) }4 a) c/ j! I, g#include <linux/leds.h>/ P* O1 \1 s8 J9 P+ C, s: C
#include <linux/platform_device.h>
. a, w8 T9 D: f. `$ U
$ F: M% w$ B: A0 v5 H#include <asm/mach-types.h>
* e4 V/ p, Y& k, p+ Q#include <asm/mach/arch.h>
. `. k' ^1 ~' d- k7 j/ Z  F6 X#include <mach/da8xx.h>
: m; t( M0 [; {- a) T#include <mach/mux.h>
. C6 o( T  ^+ O/ b9 P  e( z9 S& \( A# n) m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
, T3 |  C- y5 J9 }7 A( U#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. O1 c+ Z* A6 X+ f/ I1 [) N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
4 q8 R) v1 ~1 b1 A#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 u' i6 f# v0 p2 @+ |& q) o  \
/* assign the tl som board LED-GPIOs*/; n; X+ h7 k& v4 a: Q
static const short da850_evm_tl_user_led_pins[] = {
2 t* m5 R" K; }% t! j7 ]9 s6 P        /* These pins are definition at <mach/mux.h> file */6 a* _5 H3 g- M: M- y' q* x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
9 ?! u: A* w0 G3 v# _$ v6 o        -14 B! V# K- ~" ~: i
};
# b# N! ~* `0 h4 h! |  z4 E9 u9 l6 t2 S) \
static struct gpio_led da850_evm_tl_leds[] = {
' ]4 f0 U: J0 b2 {: p. k: p        {, f* Y  O9 L! n
                .active_low = 0,& j7 z" N; ]3 W/ |% ?
                .gpio = DA850_USER_LED0,
5 j- U5 W" a2 g1 z9 E7 \$ y                .name = "user_led0",1 b6 O) {; Z& W+ W: T" J
                .default_trigger = "default-on",/ |- Q( i! _, D( ~. L. ~3 I
        },
7 M9 L1 i$ O( x        {2 q* e, I5 C' a9 C8 @
                .active_low = 0,7 M1 ]) j: I7 L
                .gpio = DA850_USER_LED1,
/ I: c8 s$ _: P5 t7 v: j                .name = "user_led1",
) m# V+ v5 ?7 t+ i$ Y                .default_trigger = "default-on",( ]% ]2 Z3 I) k7 {0 y
        },5 F/ Q0 S1 f$ |# @3 ]/ j; S
        {' k4 _; q/ m4 R) P4 g1 h
                .active_low = 0,# Y( k+ l8 H/ }, c# D1 ^
                .gpio = DA850_USER_LED2,
$ D6 Z+ k. ]6 ?- u" }                .name = "user_led2",
  g' ?' p& G, ^% n                .default_trigger = "default-on",2 z/ ~* L( [/ x
        },
7 E. Y+ \* Z0 K6 @        {* u) P6 [# y$ d2 _
                .active_low = 0,
9 a) e; g: G( ?2 W- x                .gpio = DA850_USER_LED3,
: A& T$ Z  N2 K0 u                .name = "user_led3",
; S2 h- e2 J# V5 U9 z  Q; I                .default_trigger = "default-on",
; r  `4 J# H# L; A) n2 s/ M3 a        },
) w! s/ h2 a4 @/ B2 c4 G$ Q/ ^};5 |: p# \0 F% I

# }0 G" s" ~2 F$ J" Sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {3 O& T+ T4 j7 n; _1 g4 A
        .leds = da850_evm_tl_leds,
% v( I$ ]3 j; ~. r0 X& P        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 h" D* V7 o6 s' c1 A+ F
};
, F, N% j- H& |3 d3 D$ K& C+ Q) q  }
: r+ e$ s( Y6 d8 _5 W2 J+ istatic void led_dev_release(struct device *dev)3 i$ ?& H; X1 S" p$ A3 E+ o
{
6 i$ v7 R# g1 z! p" `% [};
$ n& W/ M& ^1 o6 A8 b4 a
9 J0 A) J! s3 P5 I, ?static struct platform_device da850_evm_tl_leds_device = {. M: o- w& h( G# h7 \4 ^4 W
        .name                = "leds-gpio",
2 z( d' Y) T, i- D        .id                = 1,6 L- K- P0 t' f. n
        .dev = {9 S9 E5 W5 @* ?: ^, W  o6 T5 v7 m' B
                .platform_data = &da850_evm_tl_leds_pdata,
) T/ W/ J/ t) v5 b1 {( |                .release = led_dev_release,; p" o/ d; C- q( z
        }
+ M) I( e4 |' `1 [: x};
! [1 C  L0 B/ s7 m5 m
8 R) h' N* [- `, b$ U8 Q" p# ^0 A' `static int __init led_platform_init(void)
: K. `3 b/ c- a/ d, g{! s5 Y9 ^) T' R' _6 b7 v
        int ret;
3 |: v7 \) u$ X) E: s' G2 U#if 0  B, p; o* Y' l/ I* q
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
- T' x( [7 u, X2 {: Q5 d        if (ret)
# x/ `2 a6 Y7 B  ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"6 U/ Q' d( y: M- E- f& Z
                                "%d\n", ret);" G; K% `4 V( M0 V! a
#endif
4 L2 V' O1 X7 v% q5 c$ S' V7 Y        ret = platform_device_register(&da850_evm_tl_leds_device);( i/ w3 G# z9 r8 f! p+ z
        if (ret)
& }( A$ S1 A  \                pr_warning("Could not register som GPIO expander LEDS");
9 |" D" K; @% M$ n  B; B' A        else( f4 V0 a* K# e. `+ v# S! R
                printk(KERN_INFO "LED register sucessful!\n");
& q/ A; N; M" s6 J5 C- F6 [( j$ e$ c: S' n5 R
        return ret;
1 R: l* Q+ }7 \: ]' M}
! |6 A; @* z( A0 e6 q7 {% y1 R/ ?5 i2 ?% R: j0 x
static void __exit led_platform_exit(void)  y3 O5 k( C0 j; H% {
{
. V4 K* Z; v' b: w; K        platform_device_unregister(&da850_evm_tl_leds_device);
4 p' H1 c4 d, b" G6 F, ~" f) N- n/ B, N5 `! A4 E2 t% b1 j3 C# ]6 F
        printk(KERN_INFO "LED unregister!\n");
3 j5 s5 m7 u9 m( U9 d% x; {}
" X8 E$ }+ u4 @) ~0 q
+ x; Z: w( @; i3 ]4 N4 o1 Ymodule_init(led_platform_init);2 ^& k5 r" M7 r
module_exit(led_platform_exit);+ h7 _" w' X6 B! A- d
% x3 X3 S2 A& g/ K9 E# Y: [
MODULE_DESCRIPTION("Led platform driver");
( R7 j* @3 o/ X# lMODULE_AUTHOR("Tronlong");
6 P( ?4 L1 r- i% [* h! f- \$ VMODULE_LICENSE("GPL");# ~4 t9 W. I% u/ y5 B# w, p

1 |# |+ x- t9 Q* b& @6 L- I8 g/ h
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 14:23 , Processed in 0.521870 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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