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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。+ _3 L2 R7 {% w7 L# @
#include <linux/init.h>8 L; K0 H- a, v; u
#include <linux/module.h>7 S2 G& ~; O1 I+ o
#include <linux/kernel.h>
9 }7 ~: [8 z/ V( p5 e( ]2 T#include <linux/types.h>4 x! ~5 z" a5 R: b0 {9 F* K% H' p
#include <linux/gpio.h>
: D1 ~9 W( q0 O, g# J7 y- J0 M% j# l#include <linux/leds.h>* n3 M5 b) B( W, W/ h. s
#include <linux/platform_device.h>! ?+ S& j; T0 Q1 J0 W6 ^5 w$ v

, k, ]8 q5 p7 }5 U#include <asm/mach-types.h>
& b( `! b2 L, J#include <asm/mach/arch.h>- h4 `/ H/ o/ r) V( \
#include <mach/da8xx.h>
7 W- i! x, t1 c1 Q" ?3 s#include <mach/mux.h>! z( L6 v( X) E, S  f$ k6 Z, ~
+ \# h% J/ ]: t8 a, o
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* ~/ {0 a3 [, m2 W; K6 p
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ R9 A; ^2 `9 a( k  S  Q) g: E9 a#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
( i9 v" T/ B; S2 I$ J) b#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' J7 w- g9 J" q7 j& m! c5 j- q
. k$ N# E3 Q& K! [! X, a9 p6 u
/* assign the tl som board LED-GPIOs*/
' U2 F: d7 E' k3 Ostatic const short da850_evm_tl_user_led_pins[] = {
8 I; Y- z1 K7 m; t4 G3 Z* w/ v        /* These pins are definition at <mach/mux.h> file */4 q/ a; e2 s7 T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 }% x4 N% h: N$ k
        -1# M# w# `% R  Z$ ?/ ^% k& v/ o, M0 K
};
5 Y, H, S5 C& ~7 P9 p+ U
% q( X; P( f' W$ O# a7 u+ [& g5 Qstatic struct gpio_led da850_evm_tl_leds[] = {2 n! x8 T8 R# H
        {! g0 E/ O, B9 D
                .active_low = 0,
& x0 B" U) k: C9 b: ^                .gpio = DA850_USER_LED0,
1 \0 j9 B" c: ^3 i                .name = "user_led0",
( s1 R, u5 U0 Q) T0 K+ {                .default_trigger = "default-on",* I9 P7 N. b/ U4 u" W+ ^* D, x4 I* B
        },
1 R. P% y) i4 o+ y! `& s* O        {2 [0 S& J3 L9 P" i
                .active_low = 0,
) _% O) N, d! g7 b                .gpio = DA850_USER_LED1,6 V9 F* [" ?4 K! |+ ?- `% V
                .name = "user_led1",
' x- |6 ?4 G7 h+ T$ }) T+ d                .default_trigger = "default-on",
5 g5 K# R6 ^" h' a        },: v: c. _% H( F6 Q4 U
        {) d4 q) ~. g5 H' i2 u, C. r
                .active_low = 0,. q: E5 v. a. R9 ]- j9 q
                .gpio = DA850_USER_LED2,* U* o3 n5 ~% d0 I, a
                .name = "user_led2",1 I+ {' s) `7 d, |8 P& U4 y
                .default_trigger = "default-on",- U0 o+ I  k( Z+ p: i" s! ^# }
        },( ?2 u$ t7 s1 M
        {
0 `/ o" I& ^0 Y                .active_low = 0,
5 N8 K# o% m) s: L' c: x                .gpio = DA850_USER_LED3,) U; X4 p' @# x! j0 n
                .name = "user_led3",0 H" }, N* ~5 M2 F% e
                .default_trigger = "default-on",
) j/ D- L- Y) s: Q, r4 N0 `        },
; Z6 h3 e# o7 O& _& H# }% d' C- i};: P2 V( N6 X1 l' R, O3 E& y* i4 x

1 \! @! u6 ~* S- I/ Bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 G1 Z- W! t: o6 h( L3 w        .leds = da850_evm_tl_leds,
: S2 T) u$ _7 Q! }2 d        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ P) y5 N3 @  `: O% I; p" E: u
};
3 k$ W5 P% W' _; L  c1 h) i
& R# j+ y  a5 @static void led_dev_release(struct device *dev)
/ X9 D2 t, a! d: v* S: t{
! G* Q$ a8 a/ I: B1 v};" {- `6 H; [0 n. R  p  }& k9 t7 G# P  g
3 X! [( C+ g5 R; Z% o2 R2 L
static struct platform_device da850_evm_tl_leds_device = {
9 i: q0 U3 S3 P  g; Q2 S# ?( r        .name                = "leds-gpio",- B' r. X" O% H) r/ ]
        .id                = 1,7 V8 Q  z$ `1 v, m! f! N
        .dev = {; w. J5 P/ A1 ?: R4 k) ~
                .platform_data = &da850_evm_tl_leds_pdata,
. b2 N* J, p9 L, l                .release = led_dev_release,
2 q% S! C+ N/ O        }6 R) ~0 C4 g# g6 B; d
};
4 y0 N# \" _: c1 ~6 M- Q, v% @9 Z; g4 p& n, z+ s) p  N2 l
static int __init led_platform_init(void)9 f- r, [- y6 Z
{
% p1 k0 G. J- [        int ret;
$ S- D# r" ^6 C9 I/ D" z/ D5 P+ S9 |6 p#if 0* x9 j- ?& Z! k9 [# i
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- S4 P9 K4 f+ \: d, v) u
        if (ret)2 @9 K) K- l5 f) K: c3 ~3 m
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": N  q& W  ^" L- ]2 e# r
                                "%d\n", ret);
! R' \) x+ p; `5 c4 d* P% c#endif
0 |) [4 G: T2 V& t5 z5 s0 p  ?        ret = platform_device_register(&da850_evm_tl_leds_device);- y8 M' j3 k7 k
        if (ret), v* b* X0 a; @' j% O
                pr_warning("Could not register som GPIO expander LEDS");
) ], X( J+ V! P" N        else  |; m/ l- Q2 ~: T9 h) p
                printk(KERN_INFO "LED register sucessful!\n");
, F- t0 x: j. j* s; U. A" z
% D% x( t# Q5 Z; P6 ]        return ret;
5 w7 z4 P# W: R$ k% w! f+ t0 M}
% z' d) f# G  c! h$ Z: z$ n
  n3 N" y" j9 d' {8 H2 ]static void __exit led_platform_exit(void)
* D, u/ q# n0 E0 U% N+ o{: P' L" D& [& A( y
        platform_device_unregister(&da850_evm_tl_leds_device);
$ \0 L* q' R5 d$ Q, C) U9 d% r
/ J: G% v( |* w9 ?) A. ^/ r2 o8 ]        printk(KERN_INFO "LED unregister!\n");
# L* ^  u( Q; f# W0 K5 s0 {1 E}# E! J- V5 T2 q
  ~. l6 ?4 u1 Q" r1 _
module_init(led_platform_init);
0 Y/ }  w% K2 G/ a5 J; pmodule_exit(led_platform_exit);
- u" E7 U0 M9 G/ g% I6 Y7 O9 w2 L0 H6 q
MODULE_DESCRIPTION("Led platform driver");+ Z5 h& {4 \* x, S% r( w
MODULE_AUTHOR("Tronlong");" d" H: i, ?; o1 \
MODULE_LICENSE("GPL");3 C# f& g9 E3 Q8 c5 p3 A6 Q  Q

" b# J5 P' W) V, {7 |4 C( g; I
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 00:44 , Processed in 0.037345 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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