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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 f/ g8 O( o( @& f2 r+ }#include <linux/init.h>9 t$ o+ N4 b* j" D
#include <linux/module.h>
& H! `5 v8 q  g" n& z3 R8 n" p#include <linux/kernel.h>* z9 k. R7 j- W0 J1 K3 U
#include <linux/types.h>
* u6 h0 P; c5 U1 B) V#include <linux/gpio.h>
( P. t7 f! t6 V' ]9 t2 i#include <linux/leds.h>& s$ I, j) b$ R6 x9 e
#include <linux/platform_device.h>2 A- C2 b7 j( ~  s. f# Z

" A0 w! e7 u1 J2 e( v4 h3 T1 L#include <asm/mach-types.h># w" e# f3 w" q5 y# H7 Z
#include <asm/mach/arch.h>
- Y# o' K5 D1 k3 L2 I; a#include <mach/da8xx.h>3 Y( B: k; K' o0 |/ W; z
#include <mach/mux.h>
6 w7 K3 t/ z+ B3 l; j, R* W; @; s. u' g
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  o- V5 h- w5 u) X/ ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)5 Y/ _! L' z3 P# ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 N9 R* T% b4 M% D0 u6 Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 J( M" p' [6 t' j6 m4 {( G7 {
# C; ?. c8 @9 y+ Q) R6 h/* assign the tl som board LED-GPIOs*/! T$ t1 O- p/ q/ w& ~" t5 x* d
static const short da850_evm_tl_user_led_pins[] = {. I" B0 m3 Z2 z
        /* These pins are definition at <mach/mux.h> file */
, J  c* m$ O" Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 K3 D, t6 D5 _' K4 J        -1
4 ^! d* w- Z# p& F, x) i};: n+ v6 Y' i* L* N4 E3 a, |
8 ]5 q6 |7 ^5 A7 t4 v6 C
static struct gpio_led da850_evm_tl_leds[] = {
( ]+ }- }+ q1 t7 n        {( V: B4 x4 z& V- w
                .active_low = 0,
1 Z/ r( j: N1 v( I' O1 y0 ~/ I                .gpio = DA850_USER_LED0,1 B( e' `# A1 h: c9 M
                .name = "user_led0",6 n$ J( x- Z# X( ?! @
                .default_trigger = "default-on",
4 e, v( f  ]0 S, y" X# x        },
) W- A! j3 G! }4 _5 s2 n        {, h, v. `: N6 b& J7 i# u: w3 O
                .active_low = 0,
/ Z, r, Q" c; H4 I                .gpio = DA850_USER_LED1,
4 e/ R! d+ `( F/ Z+ Y, o                .name = "user_led1",
: _* W" V- k* g1 |! A                .default_trigger = "default-on",
0 {4 K  ?1 J' o' H- N1 N# {        },
  Q/ Q. ~% r+ [+ F& k2 C9 T        {  m/ x- C! e* u* A* s
                .active_low = 0,7 F! p( F' j' [& S. D; Q/ i) s
                .gpio = DA850_USER_LED2,) A( v$ x; D0 ~0 y* ?3 j: c
                .name = "user_led2",
2 A9 p2 ^8 z. ~/ }8 G                .default_trigger = "default-on",
3 ^+ F' V- h0 h; U& N5 E        },% n/ v0 g) {" [- u# K3 m
        {
# `' g2 N& a1 v; m. e9 Y                .active_low = 0,
, ]3 P" t* r0 M7 h9 z: L                .gpio = DA850_USER_LED3,
0 J" C  h; G7 u0 F' x! ?                .name = "user_led3",3 ^1 Y7 w- }/ O" q
                .default_trigger = "default-on",
6 c7 N& g$ n  v" B2 @5 V0 K        },  l. D2 V) l; c: r% M/ w3 C/ d
};1 Z0 Y  B$ q& l$ y% O

2 I% ^$ Q! q& }- Gstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
9 ~, r5 N1 P  A3 w7 f2 k' b; W        .leds = da850_evm_tl_leds,
6 s0 S% `% r5 J& \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, ?  v" B+ O+ w5 [9 T
};
; s$ I" H9 r7 C! R1 m: S0 E
2 f$ H! Y: _7 H% F& r: l6 Hstatic void led_dev_release(struct device *dev)
/ i/ l3 b2 C7 N0 D2 X{9 M! v* Y3 P) [& v8 t. j
};
' a- h) i8 `: C8 C) u2 S; V" ^4 ]. Q" I+ P
static struct platform_device da850_evm_tl_leds_device = {# G1 g6 _4 M$ e( i3 N1 j+ v
        .name                = "leds-gpio",
7 y/ L7 k! t1 G2 T        .id                = 1,
: c9 p" m* ~) x% ?6 M# C+ z& f        .dev = {
. z5 M; z1 u! E) d1 ~  g                .platform_data = &da850_evm_tl_leds_pdata,
  Z- {, p! P9 T# u3 h0 P( |                .release = led_dev_release,
$ l. ?1 S4 ?% c) c8 I2 P        }
6 m% A# C1 {: L  m" @};! v7 T; o% X" W; v9 m- o
  t3 ?1 ~# u. R. V( n& W  u
static int __init led_platform_init(void): F8 J4 Q: V. L& ?. l7 W6 d
{
7 H1 @. d' W/ o9 h' M        int ret;
. r' ^- z" {: [; {) A6 r#if 0
0 X1 v. C. P6 p5 S/ @9 D        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' ^3 Y" K) i; N4 W        if (ret)
6 p. L& r  k- k+ ^$ Y6 c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"- \! Q7 t! _- Z
                                "%d\n", ret);  ]+ X4 c  q- o' d
#endif2 L: u  l, x* d# k' F
        ret = platform_device_register(&da850_evm_tl_leds_device);- q% Y4 S' J  _, V4 s* C2 D- X# K5 ?( Q& D
        if (ret)
$ ]; }0 t7 J, @( |3 f3 M                pr_warning("Could not register som GPIO expander LEDS");$ ~% h6 u. v, p
        else- f0 ^3 |+ k5 n9 k" _
                printk(KERN_INFO "LED register sucessful!\n");
4 \6 J# S' v7 N4 R2 Y7 c& K. X! P$ D( {% w% l
        return ret;9 ?+ r  q( J4 R6 o( @2 X
}
6 P4 Z+ N0 Z& r) `( N9 t* W5 _  T& Q5 w0 R
static void __exit led_platform_exit(void)+ Q" A' u1 \/ y9 D6 l
{1 `, P" j2 G6 g- ^$ o6 y4 e9 {6 b
        platform_device_unregister(&da850_evm_tl_leds_device);* G/ B. }$ o7 x3 P* }
+ l' y# F: I- ?
        printk(KERN_INFO "LED unregister!\n");
4 L2 R: a9 F  F+ H4 ^! T* Z, {}0 p1 Z1 `7 d1 J* f; \: V. r  D
3 k' d4 m( J3 e' i  i. m
module_init(led_platform_init);1 ]$ ?/ V$ `. s* O% \: p
module_exit(led_platform_exit);
$ @; m0 W: K9 m, _% X/ M9 y, A+ q1 b; z6 v/ ]1 Z; K: U
MODULE_DESCRIPTION("Led platform driver");
" n9 J( l$ a  @2 dMODULE_AUTHOR("Tronlong");9 u2 k% Z0 Z; u* e5 B$ \
MODULE_LICENSE("GPL");2 v" i$ K* k: m3 N6 b

# x+ Q. |7 ]8 b. I6 l/ i* n9 e
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 23:20 , Processed in 0.042567 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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