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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。: R. u8 x/ w. O+ v( e) q
#include <linux/init.h>/ |7 P% Q" G/ w2 |( _& o
#include <linux/module.h>8 d/ g  R0 M) D3 J" n% x. y( m
#include <linux/kernel.h>% @3 u4 H% `6 X( i
#include <linux/types.h>
: A. z1 }% }3 o4 W% k' W7 N#include <linux/gpio.h>( Y, \% ^( Z8 D" {
#include <linux/leds.h>
/ |6 ~0 q9 M3 M# [- u5 L, ?#include <linux/platform_device.h>
% _4 t8 K- K2 U* n+ {) t, a& c- A
#include <asm/mach-types.h>
' h: l8 y7 m/ g8 z/ M& [+ ]' o. T6 P#include <asm/mach/arch.h>
' U6 k- `2 t' @$ p, z; x#include <mach/da8xx.h>
' n/ p; |% b0 i7 r6 i#include <mach/mux.h>
' {" Z* b+ i3 v; F9 f/ u) n$ E) J' j0 \/ b
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0): i2 x  Z( r1 C' N" V/ G% s5 L8 {
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5), N) J) C, b! Y4 Y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 z/ X4 b" z! |, r! k0 m; [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ X5 B/ @$ |- I9 C5 k$ r3 P/ d8 A, j# j3 F: ^4 W
/* assign the tl som board LED-GPIOs*/
" F5 y* R+ u$ q) }- q3 Cstatic const short da850_evm_tl_user_led_pins[] = {
' g& b# K2 ~/ |7 N$ U: |7 ^        /* These pins are definition at <mach/mux.h> file */, P: C  C* ~2 S: v
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ ~7 D) c1 I( [& j& u: {4 R
        -15 Q9 y+ D3 T% y2 V
};
5 k5 I+ W) ?* Q: P+ k7 x) E) w4 |& Q; d% a1 I. @
static struct gpio_led da850_evm_tl_leds[] = {
1 ^2 _, c  N/ j( Q  f  `        {
% ~. X- s$ z5 J                .active_low = 0,
$ {: f0 f" o; @5 ^/ M                .gpio = DA850_USER_LED0,  y* j( _% J( b( l4 W
                .name = "user_led0",7 h3 B2 }8 F$ Q# F+ X% j+ b
                .default_trigger = "default-on",) c% V% i! T! ~! U. o: M4 B, v( W2 M3 c
        },
: u( X! }0 m8 `5 Y5 v7 X# l( J2 k- i        {
# b1 ?# Q: x/ y2 [( ^( L/ M                .active_low = 0,7 t! \4 F% b9 {. p) o
                .gpio = DA850_USER_LED1,
8 D: q' R' d# O) O/ W# \, ?6 v                .name = "user_led1",
8 s. g3 e/ C# ^* @% Z+ j                .default_trigger = "default-on",
; Q7 b* z$ e; f* y, M: |5 e7 u; \        },
+ f' X# U% h6 C        {
( _5 O7 o- `/ ~: g                .active_low = 0,& J( o) C% a" K' B
                .gpio = DA850_USER_LED2,
, w& H" G3 Y; Q                .name = "user_led2",
' d/ K1 a( X  i8 h* p                .default_trigger = "default-on",2 l3 d0 P, w' b9 R7 u
        },
3 t; v0 Q* t* E        {
- y3 f" r! D, s* f                .active_low = 0,
: I. G  |3 b1 l                .gpio = DA850_USER_LED3,# L3 {8 }$ }: h1 J& _
                .name = "user_led3",
# F- f3 a& p7 q6 g$ E+ }                .default_trigger = "default-on",: d: B: S9 D; A
        },
% D1 \+ U% B- r# s& T5 s};6 P7 n9 p7 M' m6 {2 M# D

8 [/ {# u! q. f8 _6 H' Pstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 P1 ~2 T( A& I
        .leds = da850_evm_tl_leds,9 @. ]- x; ^6 p$ x1 C. H
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),: P( G7 ?6 a% S) F! l' c1 j1 W( a
};
0 A1 N; X& K7 L, @7 z# ]0 C. J+ L9 K1 c. _' C4 H
static void led_dev_release(struct device *dev)
& `# M; e, \& {3 p- Q; e9 l* A, a$ {6 {{
& }2 a2 ]# m7 r5 L# I};
- J# D/ e# t( o' p" A
: s% E& t! r+ P! _6 m: ?static struct platform_device da850_evm_tl_leds_device = {! [4 N3 t. R4 U: p
        .name                = "leds-gpio",
2 `5 z" v" i5 ~( E* T2 O2 [8 s        .id                = 1,$ i0 Y, d: R, i$ ]2 {& ]& E. y
        .dev = {
' C% ?; P' _* a- R+ v- D/ z, M/ z& U1 E1 q                .platform_data = &da850_evm_tl_leds_pdata,6 t' \! V! @5 g( _
                .release = led_dev_release,
* O$ `2 c5 M. d; Q8 |        }3 a, r5 Z5 G3 E$ [0 g
};6 _# t: L* ?& e2 J1 \$ i
3 o: q& ]2 m" \% d' q3 x
static int __init led_platform_init(void)
1 y. ~% B% L% _- o- z. ^; E{
2 r4 B6 X; _7 f, W        int ret;; {- n& Y' m, `: S# R
#if 0
# N# e9 h0 [& r' e' k        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
, Q' W4 [  `2 i& d  \, Q/ ~        if (ret)6 O7 U8 q# p7 m( I
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ `: T7 s& V# o: x
                                "%d\n", ret);  u7 X" n: L9 l' q7 t' v
#endif3 u$ M! P7 ~6 \! c7 W# V2 m7 i# ^' d
        ret = platform_device_register(&da850_evm_tl_leds_device);
4 v+ w+ \# t2 H3 J# d        if (ret)3 i) d* b6 l" r, S0 @$ J: [' q# |
                pr_warning("Could not register som GPIO expander LEDS");
8 j( S' W( U4 A& N4 B5 \        else
" E# f+ u5 v( F# M. x& D  S7 d                printk(KERN_INFO "LED register sucessful!\n");4 {+ E; S9 S+ l1 A3 S' w; V1 c6 [

3 Q- G* D2 A( b6 O        return ret;  h7 _( d* \  e" i9 m/ ~& T8 j3 T
}' k1 H3 I- r/ p* l# f" p

' J( E) C( s: G, ]% Jstatic void __exit led_platform_exit(void)
6 n" N5 d6 s0 O2 r/ ^3 A) E: j{$ C) a) E. V, k5 a4 J9 ^8 o1 J
        platform_device_unregister(&da850_evm_tl_leds_device);+ O9 [' r. \+ ?. K% H4 T; x
; g4 G4 n% `8 n
        printk(KERN_INFO "LED unregister!\n");
9 U* G7 Z, x* T: g+ X$ }, e7 e" o}
; v! B  e* H. ]. i5 t
$ q' G. \( B9 o) p/ d; ymodule_init(led_platform_init);
$ _6 j9 f' K! q7 x# P. [+ Hmodule_exit(led_platform_exit);2 o$ W/ m# k1 a7 w, \7 ^2 U6 ~

" B. S. q7 j  @  xMODULE_DESCRIPTION("Led platform driver");6 U- ~! z% s3 X  S, ?  t
MODULE_AUTHOR("Tronlong");
1 z' z, e, U# {/ }) WMODULE_LICENSE("GPL");
" k# a+ K9 X; t$ a! q0 ?9 z* c4 U* @
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 22:50 , Processed in 0.042333 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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