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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
! b& B# Q/ B2 |( ?8 L) Q0 B) j& m#include <linux/init.h>
3 |; p* s; n4 ]9 H; n5 n#include <linux/module.h>3 d$ N! B& o# z) b- h- l% D
#include <linux/kernel.h>! X/ O; U) L0 R
#include <linux/types.h>
( `+ }) Y1 u' o  Y0 z$ `9 L. |#include <linux/gpio.h>
7 _' d& n9 a3 h7 {#include <linux/leds.h>& |* l4 e7 P& a
#include <linux/platform_device.h>' w; r5 ?  @0 n- R
8 w! ~7 ~- u5 i1 H: u& F3 h$ `
#include <asm/mach-types.h>6 g$ v+ g6 ]) q0 G" m9 q4 \
#include <asm/mach/arch.h>
6 P4 ], _# h/ j. `, J4 o' Z#include <mach/da8xx.h>: F1 g5 m  P# ?: N. ^* f6 C3 u$ x
#include <mach/mux.h>
9 p3 ^5 f) R5 w+ |4 M8 n7 N
0 V4 t! z% T! d/ _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
$ }( P* s& R( [9 M+ n#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
/ D" M% E3 V1 M5 t) H. N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) [" D& {# R  E7 K#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: O; H; j( o4 c" L: R/ ?" ]# s2 B, A( `5 |5 w3 p; F8 I. o- q
/* assign the tl som board LED-GPIOs*/+ A% @) P" [( d1 H
static const short da850_evm_tl_user_led_pins[] = {- y2 N, }9 l# L
        /* These pins are definition at <mach/mux.h> file */# v: Q6 ]$ A; w) N* E' ~9 r
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,/ r; m; W+ I) s7 h! e
        -1) h9 C' y* R* [! _. v  K( ]
};
0 Q# l# l, ~1 [+ n" ?9 B* o# \, L
static struct gpio_led da850_evm_tl_leds[] = {
% e% o7 X1 Z" y8 L        {
  R9 ~- b% l/ b1 E# P* ]                .active_low = 0,
) v: Z4 [9 m% T8 k/ M6 l/ ]                .gpio = DA850_USER_LED0,( C3 G3 D: }# y3 n$ R2 A6 Y- g; `# W
                .name = "user_led0",$ Y6 }: Q2 P) {% l
                .default_trigger = "default-on",! `. y' d% `/ K" Y$ q, {
        },
' j; M/ X1 ]) m/ T; W        {
) g1 l' J/ o  K) j# |% ]/ B                .active_low = 0,0 J$ C/ I0 P: p
                .gpio = DA850_USER_LED1,
, L0 h7 i% x7 ]6 Y% @, k3 Y* [) X                .name = "user_led1",1 p! O+ _8 h! W
                .default_trigger = "default-on",
4 n7 t: D/ @' `, c- H        },
  a$ E8 s. d  f$ G' _+ z        {; H& V7 F" d+ i; r! {
                .active_low = 0,
+ X+ V& A) r7 [' r" z7 \* t$ ^7 C                .gpio = DA850_USER_LED2,: A$ B* N4 ^& m) D7 P
                .name = "user_led2",
. T) |- r3 q0 G) }  c                .default_trigger = "default-on",
# B. ?$ E/ l1 q        },1 G! r" l, |% T8 G5 p' n6 A
        {* l/ n: d! \* z- W; C3 a1 S" _
                .active_low = 0,4 c, \; x, h( E- ^0 Y( n
                .gpio = DA850_USER_LED3,* N$ @6 O2 d  s5 r% j$ Q
                .name = "user_led3",
9 s6 d6 u$ C8 v' |; S1 m                .default_trigger = "default-on",
8 p/ i5 T) C2 w, N        },: t- s: i/ p. i/ _
};
' S- O5 o/ m8 b% H9 O
+ q/ e  n/ |/ P0 a* @2 a! ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {+ b8 W; `. g2 |4 D& c
        .leds = da850_evm_tl_leds,
: O5 b; ], b) Q2 a" q$ E* g+ y        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),) L, H) U: c! l! W1 c
};
: p( i* |- }( T, q) S" h: L8 w! M1 J( m6 v; }
static void led_dev_release(struct device *dev)1 v" O, W/ D0 |+ s
{( u' w* c" I9 u* U8 V4 q. A
};
0 \. y; s$ P( d# t" y1 X* C" F: E0 c' ~7 Z) q
static struct platform_device da850_evm_tl_leds_device = {; Q; P* a0 R* J6 K: N$ _! [( k
        .name                = "leds-gpio",
) g# o" k. o9 Q* L1 H2 n! ~: S        .id                = 1,9 i. R2 Q( U( F; k8 H0 F
        .dev = {' S6 Q' S  i, |3 ?1 \$ b1 P
                .platform_data = &da850_evm_tl_leds_pdata,) [$ b  B2 n( i, L* N' I  W, s
                .release = led_dev_release,
& o0 r! L0 n5 j        }
- e% @9 ?" j" Y1 X- f. f* ^};
- M8 `+ h" `' X4 j- M
! T# O+ r* Q0 z" P5 j2 \3 Ustatic int __init led_platform_init(void)
3 V8 P& w' j) i, R$ Y+ a/ x{
# X  `& f; U) j6 |0 u        int ret;
) I. d4 m2 d+ q* _" V6 s5 r#if 0
* j' |0 p4 b: I* Y' s        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
+ h& d9 R' J8 V1 g3 ]( K: d        if (ret)
$ ?2 A; ^7 Y" [$ a8 l2 U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
5 L. N0 C! n% P1 Z9 q6 [                                "%d\n", ret);8 }6 C/ \% `; r; |
#endif
' q* b9 _; ?& W, C' d        ret = platform_device_register(&da850_evm_tl_leds_device);
8 i9 ]5 m6 [9 P, \7 r# q/ f        if (ret)+ n. a% v/ q+ ?: ~2 G) c
                pr_warning("Could not register som GPIO expander LEDS");9 F  y. W4 W) `$ `3 u3 Q1 Q$ h
        else# f# @$ v2 Y1 t
                printk(KERN_INFO "LED register sucessful!\n");
! Z' c& p$ `& w" ~' I
  Z% X( `3 C! J( o0 K, s        return ret;' t5 _, `$ w  ^0 K& _; v0 n* t
}! j0 F1 r& }, O. W/ v8 s+ b
( L: p8 C# }0 A2 d3 t6 t
static void __exit led_platform_exit(void)
5 T: J& q3 ]6 k. B8 d) I+ ]# T{
( U$ V  Y. f7 Z# s" v        platform_device_unregister(&da850_evm_tl_leds_device);* f& k! _8 G& J" ^
9 `8 p+ _; S' @8 W: \% r
        printk(KERN_INFO "LED unregister!\n");, V7 E) ]5 G) L% M' J0 j
}
3 z1 g* b: b8 K* m1 X8 }1 E7 L- }6 L# _& h3 U
module_init(led_platform_init);: U1 j/ w7 d9 E* g; Q7 ?
module_exit(led_platform_exit);$ t; \: w6 n7 D9 b* T/ k% G
3 P, l1 r, N) d; j" |1 r
MODULE_DESCRIPTION("Led platform driver");
* ?& r; U& z5 P3 ?7 G5 d# {& GMODULE_AUTHOR("Tronlong");  q. e, x: c: s! B% c& r
MODULE_LICENSE("GPL");
  ?1 ~$ s. Z8 K# ?# H5 N2 ~
) W1 w0 s7 M  r+ v
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-29 16:10 , Processed in 0.038796 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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