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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# R. l, p% g4 n- q; X# c8 F#include <linux/init.h>
; q$ e8 T% h" x#include <linux/module.h>( }# C% Y7 Y6 Z  l& t5 h/ Y# n
#include <linux/kernel.h>( D' f4 u% j( |
#include <linux/types.h>" ^0 o$ D$ W4 `6 J
#include <linux/gpio.h>
6 k9 M% H2 F. U; ?# B" s, ^$ Y#include <linux/leds.h>
6 v& d3 H% [4 t$ s" b' Q#include <linux/platform_device.h>
5 I& a/ A3 M3 z& p, t/ I7 N) V' \% q) m6 j# {
#include <asm/mach-types.h>
2 \. @" ~0 l. q/ |$ J#include <asm/mach/arch.h>
- K8 u7 ~4 q* o/ J# ^/ _#include <mach/da8xx.h>
2 Z- h* s; r  R. H# [. n) Y3 s#include <mach/mux.h>& Q+ C0 n+ ], R# E) {, ?6 E" ^' S
4 m3 D! p9 v+ b, J5 z. r& Z! N
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ p# v5 u% J8 D* C; z0 e! c1 [8 r8 ~#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 s" Q: O4 x* U7 D, j& t+ I6 G#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 A( z+ E1 W$ a' `: B$ P# `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
3 A3 @6 h/ U4 v0 O# V7 Q1 \9 S4 K1 Y
/* assign the tl som board LED-GPIOs*/
  V2 B* s4 S* v' M2 e. o/ cstatic const short da850_evm_tl_user_led_pins[] = {, A5 G3 z( Z1 Q, H
        /* These pins are definition at <mach/mux.h> file */5 L2 y0 {* R) G5 X7 ^0 y: C( c
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,  Y* e# @5 h: `. t! z
        -1
; ^' T8 v2 o. R! E  B% l};: l% G/ N! t! d- L9 z  u

9 s" y3 X% Y' y, Nstatic struct gpio_led da850_evm_tl_leds[] = {9 m8 c, r4 c* h$ g/ p
        {
6 @$ y1 J) a) C# |: s7 i                .active_low = 0,* [$ i  Q. m/ _& m) N/ T) L
                .gpio = DA850_USER_LED0,
" Z/ M! E9 y5 k1 ^  c                .name = "user_led0",1 m+ x1 O4 d' i7 d
                .default_trigger = "default-on",
2 ^5 Y% M, j; E% ^        },
5 r' y2 k5 h) a' j1 t- m* {        {0 n# F$ v* k$ [( k2 l: J
                .active_low = 0,  a& z% P/ J2 ~! v# ]
                .gpio = DA850_USER_LED1,  ^/ k) d/ z5 Z8 ]8 i( C5 o
                .name = "user_led1",
3 y" s5 j3 _; @5 _                .default_trigger = "default-on",
2 d. t" u1 w% o) F- U4 U. f& n6 ~        },
2 O% a! G) t. n9 l9 l8 C        {
. C  m& F' \8 N" S: |                .active_low = 0,
% r1 y7 `1 O$ N4 t  A, @  [                .gpio = DA850_USER_LED2,- B6 G, Q. B- M& O. z! e
                .name = "user_led2",5 o: o  S2 I1 c. B# c
                .default_trigger = "default-on",
* {+ E9 o# t* s- m% m        },# C! Z4 f4 M) v" u  W1 w6 U7 p
        {
" M2 B$ X6 z8 S# Q! X( O                .active_low = 0,
# U. M6 q- i, T& j$ I" z                .gpio = DA850_USER_LED3,/ W' O9 [3 H+ _9 d, i
                .name = "user_led3",
! c  _9 K6 h% v5 B3 D                .default_trigger = "default-on",% f& t2 Z: V1 z4 ^
        },* Q: b4 w4 \  Z, h2 T* i. d- T
};3 ~3 j0 |& }$ G/ A! a$ D1 [6 n. S: D

3 a2 M# I: z! x$ ^7 e' m$ C6 [static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ @5 Q/ o$ \5 @7 K9 n: ?) O- s6 l
        .leds = da850_evm_tl_leds,8 `4 v' E( s  N! V" |& m1 n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),& k5 _) o5 h( X- p
};  P, N6 J0 T/ K* U1 [
7 N/ _  b) k( s' f1 j+ ?
static void led_dev_release(struct device *dev)
) L) K4 i4 ?2 ^{: ~+ O" w. `% C; K: i- t( M
};
8 I" z1 w6 M# ^+ v& k6 `2 r' w( r/ B7 n  a# u* C2 [4 w
static struct platform_device da850_evm_tl_leds_device = {
9 G& ?, l& [. Q' ?' J9 ]* |        .name                = "leds-gpio",
7 }, C6 v: ]( l9 }7 p; z4 D        .id                = 1,
" {) v; N. B/ n        .dev = {9 f: ?5 w9 T. [: n; o8 r* O
                .platform_data = &da850_evm_tl_leds_pdata,
+ z5 F3 {6 X. {; x  R( Q                .release = led_dev_release,. ?; H: S7 o7 J$ Z5 b- a
        }% J) h$ o; X- l1 o/ M
};
+ g4 p7 b  B' A6 h7 m  j& R$ C9 M+ v. W
static int __init led_platform_init(void)
# Y* h& t5 U% ]. K# y3 F+ h* C{& N8 d9 F- w5 z5 ?" Z) L
        int ret;: n3 p9 _7 ?4 Z7 P; b
#if 0
& G7 `# S& z! ?% {, x* t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 U) ^$ q$ Y( k% M+ e
        if (ret)
& N- b, J7 W( m) I# ~                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"! c" H- `& S5 C% U6 `! E2 f
                                "%d\n", ret);2 {4 R3 S1 E, f5 f0 F/ }
#endif
, x; c4 a4 v, S' n; x$ K( ^, Q        ret = platform_device_register(&da850_evm_tl_leds_device);
5 O- [5 Z6 Y+ x" D; T        if (ret)
+ W1 B$ G9 S* ~4 I+ {  w                pr_warning("Could not register som GPIO expander LEDS");" W* K! E) Y) g# @2 A4 c8 [) ^
        else6 d9 s  b, E) v
                printk(KERN_INFO "LED register sucessful!\n");
, N3 G  a( M; p! C% O" y- F& Y
. }8 B: f5 b% g7 c8 w        return ret;
" Q: t, s# N7 D* T}
6 f7 X. }% K0 E/ F$ }& J1 ~  Q- _! l% a
static void __exit led_platform_exit(void)
5 b; ]. n$ Y$ P$ ?{% u  E$ g$ w: G' J
        platform_device_unregister(&da850_evm_tl_leds_device);6 z- k! r& o7 O! H$ F
" g# S" j4 f( V5 d4 P
        printk(KERN_INFO "LED unregister!\n");% J+ b  M( t- W6 b4 t
}8 w4 E5 F0 m. w7 ]4 Y- ^$ S

8 r! }0 X3 P. f, V, K5 x; a  _module_init(led_platform_init);
  K! z, k/ R+ j& cmodule_exit(led_platform_exit);4 i3 d2 B9 I4 i6 k! E/ k
0 H  M% j7 u* C" f5 A5 e5 }8 R
MODULE_DESCRIPTION("Led platform driver");2 H. u- G5 |2 P( {  J( J5 f9 T
MODULE_AUTHOR("Tronlong");3 t; z5 k; `, d2 b( q
MODULE_LICENSE("GPL");
, M6 V: ]! [8 L) A- z
( K0 N- z* V9 m4 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2026-1-4 18:22 , Processed in 0.044881 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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