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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
4 o, s4 D- f8 _5 Z0 g3 K7 U) [' Z#include <linux/init.h>
, _! B. D2 o; S! H+ q#include <linux/module.h>* U' T9 w6 s# Z- B4 C" I; y1 ?8 C" ?
#include <linux/kernel.h>9 f& I" T5 v8 `2 J- b
#include <linux/types.h>
8 s; T" _; W# R6 y, R7 B8 L3 G#include <linux/gpio.h>
# M! _$ a* o3 X9 D2 Q" j- w! Q7 x#include <linux/leds.h>; v6 b$ e* s& V4 F
#include <linux/platform_device.h>
# \8 h  B6 i0 L( A, M* d
6 U8 d, ?, X1 Z9 ~0 m. P" R# O" ^#include <asm/mach-types.h>
1 p0 z5 M0 R' t9 _#include <asm/mach/arch.h>. l% n& m  f' u) o
#include <mach/da8xx.h>
5 H1 z/ a! l8 l* S' Z" ?+ P#include <mach/mux.h>
. q2 f2 W' u2 v% n2 T+ Z: p% ^4 N6 N: f5 i
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) ~. S& t0 E# e& B/ `+ c! D#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ a* I9 B+ c, ]& {; m5 N0 P
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1): {$ f- x7 r* ]: L: d2 P" @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)% l& c; K- k2 U  x4 f, N
4 @+ L' e' o3 [. i7 m0 C! t
/* assign the tl som board LED-GPIOs*/; ^) P; M: m& _" E4 u* z5 V
static const short da850_evm_tl_user_led_pins[] = {
  q, C8 D# x, Q* M$ ]2 D- f        /* These pins are definition at <mach/mux.h> file */
1 _$ h  N2 `4 T4 W" B+ X        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
+ Z+ j$ `9 |3 I; W0 U' \        -1% \+ W: I0 h! b/ h
};1 E1 d" @9 B$ x+ B' _5 r
) ]* Z. A$ ^# j1 L
static struct gpio_led da850_evm_tl_leds[] = {  [# @7 V9 z: t) X& y0 J6 P$ ?$ R, G
        {
2 f/ ~% F7 O; D' x                .active_low = 0,: D6 {: }: r& o/ T! \
                .gpio = DA850_USER_LED0,. J; [0 B/ L  e% n9 A/ L2 K
                .name = "user_led0",
, C! S& h* B2 s$ b1 A7 }% r                .default_trigger = "default-on",
6 C- s9 r. U: s- i* j0 \        },+ j. }: T2 _5 l* H4 k0 q( b. `; @: b
        {
& D/ W+ E- v$ s3 Q7 V. K                .active_low = 0,- h+ K, ]9 H/ h) _1 l* ?- p/ n  d1 o# V
                .gpio = DA850_USER_LED1,
5 `0 r( ]' T# k: |                .name = "user_led1",' g. V2 J" K. b, k$ D* H
                .default_trigger = "default-on",+ b2 d8 f% ^+ Z+ W/ [
        },
5 y$ h/ j. D1 X' v+ W' Y! k        {
  Z+ c& |' p, a" W                .active_low = 0,1 c8 k$ i6 }5 e8 G
                .gpio = DA850_USER_LED2,; g6 M  d. T3 G: B7 }9 x" `
                .name = "user_led2",. `: u7 b( _0 l7 l0 P4 @& u  ^6 G
                .default_trigger = "default-on",
+ V+ v" m! e+ A$ q+ G& l        },' P! F: p. G0 f1 o. h$ H
        {. L$ N0 ^1 g0 S/ u8 s! k, T( _
                .active_low = 0,$ e' v# l0 @: i% z4 p& n
                .gpio = DA850_USER_LED3,
) Y. `8 F- r; m1 z. ?                .name = "user_led3",; r7 g' r; \$ _
                .default_trigger = "default-on",
, o6 @, A# b& E; F8 X        },' x; a$ M" y0 N$ E$ H/ X
};! z/ f' j4 S$ H0 e4 N' g

1 M4 D. y! i3 Cstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {' a) C4 v9 G& |+ P8 W
        .leds = da850_evm_tl_leds,; s3 K% x% D; _  w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
% q+ p2 ?& d" Y0 M& [};
% C6 e( r" w/ r3 Z% [
; i8 V# b4 R' S1 b) {8 ?static void led_dev_release(struct device *dev)8 k+ u# M/ |+ m1 j( q
{
) a- \/ w5 S4 o  y) p};
& {$ j2 a) O. z
2 U1 p0 @9 r$ o9 \) [, nstatic struct platform_device da850_evm_tl_leds_device = {
5 `# f6 P* x: z1 D# I6 i6 u, `' L        .name                = "leds-gpio",( H, v0 t( Y2 _$ j% z
        .id                = 1,
2 I# o0 i# s: h% `; R. [        .dev = {
5 D8 e# i/ D6 C  @& |6 @                .platform_data = &da850_evm_tl_leds_pdata,/ h) E/ J6 S2 z5 K/ B
                .release = led_dev_release,- C) W+ @, A" `' N. G) f. I- [3 W
        }" F# \1 q5 Z' C; a% B/ m
};- @6 L4 f; W* V! s3 H, e
" j- G0 b7 L/ ^
static int __init led_platform_init(void)
: p7 j; [3 P/ s! g1 w' Q& L+ L{
. \8 Q9 J3 s* `/ i4 y        int ret;. e: K2 J0 z9 Y/ e/ `
#if 0
7 i8 }1 G- `$ ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; L- L: T" z# }+ H/ q        if (ret)
2 e5 A0 l8 N, S  \+ {, W/ d3 w                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
# b* y+ d* X" k& ?                                "%d\n", ret);. f* N" x( ]  k
#endif
0 |# I+ k" R$ Y* Q7 _. N        ret = platform_device_register(&da850_evm_tl_leds_device);
3 b7 x% t" r  [0 J1 C        if (ret)
' C4 k3 j; Q+ \( Y; \4 z                pr_warning("Could not register som GPIO expander LEDS");- ^6 d' x; D. I, l+ f" [5 ?
        else
& o  A2 ^6 J% H! o, `                printk(KERN_INFO "LED register sucessful!\n");
3 o. L& T& S, i6 U2 G0 e- V. ]; }, L% b- o, C/ N6 |- ?4 l
        return ret;$ ]$ b2 T* F( F6 k5 i8 F
}
7 y4 W9 Y! M0 p8 N' T6 m( d1 G: _1 I, r/ `
static void __exit led_platform_exit(void)
/ g  L- C* K8 I& u( v# h4 u1 j$ X{
& Z9 e+ u1 B3 }8 o$ M9 G        platform_device_unregister(&da850_evm_tl_leds_device);. ?  @7 B' b: O

4 v  L. R( x0 j- M$ A        printk(KERN_INFO "LED unregister!\n");" b4 q1 @/ S# t5 Z  Y( h
}5 }5 M7 J4 B  S3 Y, Y7 e, B; L
! T' w! y7 g7 @3 S* J
module_init(led_platform_init);& X! F( [9 }( q, w5 x3 U
module_exit(led_platform_exit);
3 g$ q0 P/ B5 b# J' z  R# ~( h& j, R$ P$ q
MODULE_DESCRIPTION("Led platform driver");. v/ Y. J, \( b/ {3 j, Y5 B$ a# w1 h( |: d
MODULE_AUTHOR("Tronlong");
5 K1 Y( Q7 @/ O3 F! F/ P4 KMODULE_LICENSE("GPL");
% v9 W1 N( E$ J0 a% f; Q$ e. ?9 ]% Q4 m3 i( Y
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-29 08:53 , Processed in 0.036200 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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