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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 U+ R! W' _( v$ x! M7 K
#include <linux/init.h>
% a' `: Q8 l- I5 `0 A( q: ^' ]8 U#include <linux/module.h>, b% O9 j* d" J: d
#include <linux/kernel.h>% e( a2 G) h4 ]/ m+ V
#include <linux/types.h>
% O5 \/ R. z/ s: I. Q  F. N#include <linux/gpio.h>! ]1 k3 g( L& A- v+ P1 F& M
#include <linux/leds.h>* N5 |) u  f) [
#include <linux/platform_device.h>3 }- i4 c& p% p9 ?8 X7 Y

9 Y+ ~6 y7 _* F! A#include <asm/mach-types.h>2 \. L  c) w: R, P8 e- C
#include <asm/mach/arch.h>
7 ~! o; t! ?9 K; J+ O#include <mach/da8xx.h>
) X  W& a% i0 F$ S1 X- u! Q#include <mach/mux.h>- Z4 M' X, P# t) N
  s) l' E0 T, |- R" o/ C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
. @, I) \6 a% Q; u#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& D% f' ~/ h, M/ y3 D; S) p& @# B
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 m$ k3 C5 @8 n0 b( l5 [% l#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ v+ g1 r2 G; ?; t2 J9 _# W3 ]& E% W, x" a* q9 X  [
/* assign the tl som board LED-GPIOs*/
5 v3 V' I2 a8 m8 kstatic const short da850_evm_tl_user_led_pins[] = {8 R6 t  A' q- m* v& X
        /* These pins are definition at <mach/mux.h> file */
) o$ y) |7 _" v) V7 t' J, R  E        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
8 g- u; F9 ?3 a4 U& D* `        -1) a$ d- Z. P* E* L" p/ ~: ^
};2 f% d- k! s  i% m# P
9 v# n9 \. q* R- f5 f
static struct gpio_led da850_evm_tl_leds[] = {
3 o" i: D$ |1 Y) ^" i  Q        {: m5 _; l* F! C6 u8 C
                .active_low = 0,
" q4 C) u; q  D3 {" A3 ^                .gpio = DA850_USER_LED0,
; e6 A# N/ M# c% {( X) X                .name = "user_led0",
( ^, _, m8 G7 ~) _7 C( i                .default_trigger = "default-on",
/ I' o7 V7 T4 ]* O9 G! p+ }        },
7 k+ T5 J8 u9 y4 @- f. U        {& v8 M9 E8 p) X. @
                .active_low = 0,) Z- Y2 W9 R3 X2 P
                .gpio = DA850_USER_LED1,
* O7 s$ |* g# l$ d- _6 a$ B2 {! }2 v                .name = "user_led1",  k* i0 o- ]% f# w4 a
                .default_trigger = "default-on",0 `! Q7 o2 U+ R# |' [$ b) F
        },+ O3 ], C* w# Q  \. t6 I
        {
  J  B$ n' ~- ?2 K                .active_low = 0,
0 O  |" x4 Y; w                .gpio = DA850_USER_LED2,9 n- }: L9 A: U
                .name = "user_led2",9 ^. A0 U! r: B
                .default_trigger = "default-on",  e  q( S) Z! c# m, v0 K# ^
        },8 H" ?1 s5 T- l4 G7 R+ V& J2 }
        {
) O, t. y! w( }0 j5 [                .active_low = 0,6 H. s( h1 k" Y+ [
                .gpio = DA850_USER_LED3,
! E$ b* P2 ?2 l4 `' c: w4 B                .name = "user_led3",
8 o& g; J4 _! ~( X2 i                .default_trigger = "default-on",
% A/ L9 ]% z) B4 D        },% l( x( {) r5 T. t( f) j
};
. q6 m. e+ R% V% T! {) H7 E2 M4 B$ z7 n9 ?/ Y1 n
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
2 C8 ?7 h( @/ B        .leds = da850_evm_tl_leds,
* b! A+ T' V- {, w- |0 [. `7 m4 g# D5 V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% o2 D, r6 {  r# N& w; L};9 W* Z; w. W) {. |

: m9 l. Y$ g' G, H+ @  L; G$ [( e2 bstatic void led_dev_release(struct device *dev)
. t9 p) M* I0 g9 G2 p/ W- W# O) W- E{7 d- V* M8 I6 H  e9 p
};/ C7 Y$ |. n4 \* r0 I  O0 D
( M% X0 S- z- g  b
static struct platform_device da850_evm_tl_leds_device = {
( f1 |# q) d2 Z$ d6 B. G: W7 [        .name                = "leds-gpio",
8 R( m$ e* Q3 }; W0 i9 W- K        .id                = 1,
; J# S& ~7 g" w3 J        .dev = {
5 M- q# `. Q. w5 h                .platform_data = &da850_evm_tl_leds_pdata,
# J8 I3 u+ m! |4 i) z8 \& ]' |                .release = led_dev_release,
8 b; }' o( D1 F; ?* n7 k. G; N        }0 ?( F- }" g' u
};% R1 S* H. `9 U2 I+ j% c" H+ O5 w

5 s' O# v: R8 `5 }3 L7 Bstatic int __init led_platform_init(void)
- G% @" A6 X8 W' @5 S, s/ \) z7 ~{
$ W3 E/ [# P  `, T& \% Y- Q        int ret;
, }3 n9 S- @: x2 q#if 0
4 E' z) b7 j& \: T9 ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
' n, K7 x5 }. f) W4 z        if (ret)
3 a" G0 t) a2 Y' b3 ?, c1 X2 A; `                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 R0 O' F! K5 m; `6 ]( P                                "%d\n", ret);; y8 q  i5 f# l% l0 |! ]! N
#endif& m4 ~- }# x9 A" {1 V$ {8 F5 H0 f7 E
        ret = platform_device_register(&da850_evm_tl_leds_device);
8 {/ p2 m! M8 \2 Q$ J5 q3 M        if (ret). p2 \, Z: E% ~% x
                pr_warning("Could not register som GPIO expander LEDS");& n, h1 P! n- U1 `7 [
        else, T: r6 E4 e  u
                printk(KERN_INFO "LED register sucessful!\n");2 d( B, I, Q( j- z- `: m# z0 }0 M
' G' h. n# x0 X% B2 R7 r2 D- a
        return ret;2 n  t4 i8 ]: t0 H% y( s( |
}6 z  f) ]8 p8 I. w
8 a- m& y. D+ x* t0 ^8 x
static void __exit led_platform_exit(void)) K2 |) Y. w7 v3 ~9 u, c+ u; ?" b
{5 J. H7 c  z, q3 A* I
        platform_device_unregister(&da850_evm_tl_leds_device);7 o7 G! Y' Y- Z$ z6 k' J; Z
$ t  T+ S5 U- F; p6 _/ V. m
        printk(KERN_INFO "LED unregister!\n");$ h( G# }; ~# `+ [; B, V% }
}, I5 T" _2 R& B7 D; z
" b8 C) H6 Q/ I. `
module_init(led_platform_init);7 g* d- a5 ~9 t! z- P
module_exit(led_platform_exit);" Q& R, \1 A# i6 d0 H

; Y. @% V2 r1 y& V4 OMODULE_DESCRIPTION("Led platform driver");7 h2 [( J+ ?2 ?" C
MODULE_AUTHOR("Tronlong");
: m2 J$ Y$ h1 H5 f  q4 [MODULE_LICENSE("GPL");
. r+ B, ^3 C1 M7 J
$ c1 `4 t' e' s# K+ }4 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-1 09:26 , Processed in 0.041374 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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