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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
3 d4 ], _, a7 O8 o% o5 U#include <linux/init.h>
6 X) W0 _- q, R5 p) e5 G#include <linux/module.h>
* x  a1 h/ s. s4 [#include <linux/kernel.h>( }' {. J( U  \* T9 c& M. i
#include <linux/types.h>0 \. c, G1 c7 ^8 x
#include <linux/gpio.h>2 s+ a2 u+ v8 G) D6 Q5 R9 s3 T
#include <linux/leds.h>& R9 J% d: ^' M0 L
#include <linux/platform_device.h>& k  u# K% E% h* y7 `8 t) V
) N' f. G6 w+ m' ^1 R
#include <asm/mach-types.h>
% H7 ^* \( F3 B6 u- w1 j5 u/ p#include <asm/mach/arch.h>. d# z3 e& u$ U4 R/ y  ^" N
#include <mach/da8xx.h>
+ \; j* i$ ?0 J#include <mach/mux.h>
" H9 G. C: I1 z" s, p3 c! f3 U7 L2 X; `1 n; H& x3 u6 _
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)9 X5 y$ v$ q8 Z. F7 j+ j
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 {+ `. u4 @- M  O2 f2 O( k) x3 f
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)  ^0 x+ `7 m# d. m
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 M7 u4 K4 L* t$ w, G7 c) h9 R
+ Z0 p1 e  u& K  F5 G# K/* assign the tl som board LED-GPIOs*/
  r8 y% S$ M* Z5 F9 Zstatic const short da850_evm_tl_user_led_pins[] = {8 @1 e  q! z0 F; P
        /* These pins are definition at <mach/mux.h> file */
, A9 U+ \) {0 O9 d8 [' U        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ X! B; }+ u. p' K# c* A7 S
        -1, X' z% \! p8 a$ V  Z6 @" \
};# F% v; u2 o& w' [
& i! l1 `: B, ]0 ?2 F5 m
static struct gpio_led da850_evm_tl_leds[] = {- P8 t, Z2 \2 o! r& A
        {6 c( w8 o) I. ~7 F
                .active_low = 0,0 w4 j5 Q# I# `* X* L
                .gpio = DA850_USER_LED0,
! W$ C) H: s& k6 z# C5 X                .name = "user_led0",
+ r, `  d! g4 t1 d9 z8 p                .default_trigger = "default-on",
! w2 J; J9 R9 J. U5 F        },
9 k7 `" V& v3 @8 P+ }        {+ ~1 ^9 [" t' m, I1 G, l
                .active_low = 0,2 \: v1 o5 m- V
                .gpio = DA850_USER_LED1,
+ T8 D/ \  B& H/ G* D                .name = "user_led1",
9 G" ^5 a3 S+ u2 r$ H                .default_trigger = "default-on",
2 p3 C, [9 O, S$ _+ O7 R( J        },# Y6 C; ?' C1 X6 S/ s" \0 l
        {1 G$ M8 c( |- T) I
                .active_low = 0,! L/ M) b8 c  A8 M: Q! ]' K
                .gpio = DA850_USER_LED2,
$ N/ ^0 h; Y8 R) I3 {                .name = "user_led2",* Q' p9 @$ f" P' v5 X, }
                .default_trigger = "default-on",$ s/ Z. g  u; C. A5 ]
        },5 ]6 ~3 Q: c+ `+ r2 c$ N
        {8 J" `; c9 n- d7 Y6 Q+ s
                .active_low = 0,& B" L# G- v, K' X& \
                .gpio = DA850_USER_LED3,& p# G! ~( V" q5 B
                .name = "user_led3",' R0 w+ U" F0 t, T/ ]2 e6 c
                .default_trigger = "default-on",  n! }( w: G; k+ V8 r; j
        },- z  H# u+ R$ N* }, I# n+ w$ o( l
};8 S, ?  ]2 g. I5 N4 z" J7 {: C
( k+ Q& l" a1 d$ e( R$ O* ]
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( F- a) M& a$ F8 }# J
        .leds = da850_evm_tl_leds,
5 G# A) \/ }7 N- P1 x9 X        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
! D- P; ]5 E7 b4 e4 K* |};
* T6 d% c) ?& d& h& }; d$ [  P0 |+ n1 Q( t- s
static void led_dev_release(struct device *dev)7 U# w0 d1 O* }% u1 Q5 \2 b% g; z
{8 v6 o& E# W& x
};6 w; x4 |0 V. A! g

7 ^) \- j( ^; |3 C, Zstatic struct platform_device da850_evm_tl_leds_device = {
- V- c+ B- o' u) Z! G        .name                = "leds-gpio",* P" r1 l3 R4 d7 Y* h3 F' R$ t
        .id                = 1,
; l, |7 `* O# t, e        .dev = {+ X% e$ J9 A2 A: `
                .platform_data = &da850_evm_tl_leds_pdata,: o0 @/ w1 W: R3 ^2 {9 e( J
                .release = led_dev_release,3 r( M4 D; c! x
        }2 y; O& q' \" A
};
% q4 O0 F/ A4 ~, A& A! D3 ]" Z' q% W3 Q# Q  J# c$ i1 s
static int __init led_platform_init(void)% J0 }3 j' j, c9 b
{) z, x( U- f" S& r$ v5 M) r4 j
        int ret;
5 A! e; ]3 J8 ]#if 09 S7 N" L( S6 n1 I& q5 w
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
8 J' ?5 w( G) o) W' \4 U        if (ret)3 U9 t' a6 V8 Y
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"5 M' B1 Z: C' D; I9 t9 I
                                "%d\n", ret);& i% F6 U7 L+ H3 R' z7 h8 {
#endif
- ?# ~" z6 H; c8 t3 L+ s. X* w        ret = platform_device_register(&da850_evm_tl_leds_device);
. x, ]: x7 }, n/ i' |+ _) P7 ^        if (ret): Y( O8 w4 C: ~, B$ c! W0 t
                pr_warning("Could not register som GPIO expander LEDS");: q- W- j, q0 R" i1 i
        else
1 h4 ~3 W) F$ D1 {                printk(KERN_INFO "LED register sucessful!\n");- M0 N; B1 K6 f4 ?# R( i, l- e

+ }) R( }# g* C4 y        return ret;
+ }3 d2 |$ U% D5 ]- ~+ b' x}
4 k' V0 u) t% \: ]& a9 I5 ]+ c/ {* L9 f5 K1 W1 l+ Q' E
static void __exit led_platform_exit(void)
) i) w' q+ ?& {* V3 \{" s" P. e4 Z0 U+ ]% `5 ]0 B
        platform_device_unregister(&da850_evm_tl_leds_device);& n% }6 z2 o! y1 r3 C9 P/ W
& f0 j' Y, D$ Q8 b* l; l
        printk(KERN_INFO "LED unregister!\n");
9 R, t2 N& A0 ^9 [: N}! F6 K% w! H. U0 X
! v2 m7 y* M) g
module_init(led_platform_init);" P& M; j) C6 T# V! f
module_exit(led_platform_exit);
, V- Z; }' w  w2 e, X) k! }$ h, e: G6 V
MODULE_DESCRIPTION("Led platform driver");
& K) [3 G- W1 \! yMODULE_AUTHOR("Tronlong");9 Z" c, f6 o) [! F, e; x
MODULE_LICENSE("GPL");* J9 G& z3 y1 L" `3 V

% D( N# a) v& I; C: F0 [: `4 [
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-2 02:14 , Processed in 0.041849 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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