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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。* p: Y* W. v8 Y3 w0 x
#include <linux/init.h>
9 V) i9 E7 @# ~8 F8 s9 i7 u( r#include <linux/module.h>* L5 K* c1 g3 U9 p
#include <linux/kernel.h>
. p; R( \* H  m" b  E1 T, c7 W#include <linux/types.h>3 M7 j4 ~7 O& z* E+ M3 ^' R
#include <linux/gpio.h>
7 H, X8 l  Z/ s7 F6 }- A#include <linux/leds.h>
. d2 v7 y, `1 b/ Q4 t- p#include <linux/platform_device.h>
! H0 r, Y  y7 u+ \+ |9 V6 }2 T' O: O: ]7 T* X
#include <asm/mach-types.h>
0 d6 h8 I2 O; N% ]0 H/ M: d7 Z4 \#include <asm/mach/arch.h>6 ^8 |7 i2 k( X+ x( R  e5 |. \
#include <mach/da8xx.h>% T; N$ U3 Z4 U$ D
#include <mach/mux.h>
8 ^2 S( g( l2 l* y- u( k1 U" x  ~9 B. ^9 ~7 y( \* y3 I
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)0 }0 f* V# h% H/ y( V3 I
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! }/ z0 W- d9 _# L) x' u+ E
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 {4 B8 A3 X1 t" S, b% ~
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
( K  P+ R* x& O/ o$ X
$ A  S- p3 F9 ?8 P/* assign the tl som board LED-GPIOs*/& B7 B% h0 r* S) v3 d% M
static const short da850_evm_tl_user_led_pins[] = {
! ]5 V6 ?1 W3 o        /* These pins are definition at <mach/mux.h> file */8 o5 ^8 _" A9 G$ c. r. H
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
0 |+ y( v; A6 t) n& j9 r6 c0 O        -1
. S! \4 H: I. }0 T4 G};
3 U+ G: n; X! q) P, f  Q: B
7 f% X) K1 d0 y& S& m" q& ~static struct gpio_led da850_evm_tl_leds[] = {
& ]2 ~5 S; |, `% y8 F4 Q        {  ~% s6 H+ L/ ?, J" [
                .active_low = 0,6 R. h, A5 T1 e: Z8 `
                .gpio = DA850_USER_LED0,! j7 ~6 i: L1 V  r
                .name = "user_led0",
) }$ b) m3 R8 B                .default_trigger = "default-on",; s+ c( T: }7 D
        },
& p7 S: F* F( Q/ [; T6 Q; C        {  Y. v. X9 v8 r1 {; u, l
                .active_low = 0,& f/ M' r6 r& k: y9 j+ R0 ?! j8 S
                .gpio = DA850_USER_LED1,& b' q0 |7 r* H5 r1 C
                .name = "user_led1",
4 I9 ~# o0 }1 \$ Q' P                .default_trigger = "default-on",
" T% _  k$ e* D        },
6 U) M0 |; d) J: m: a        {5 p3 \# H! L: U$ B
                .active_low = 0,
9 r! M/ [2 l7 E2 Y3 ]5 `                .gpio = DA850_USER_LED2,
1 `$ ]4 s: _$ g* x+ F$ |                .name = "user_led2",( f- d) c: I. O! K- n; v6 D
                .default_trigger = "default-on",( c1 V5 M1 q9 c& W1 @6 q& `5 {9 f+ D
        },
/ e, F/ U- e1 Q0 P        {
3 a) N0 [: p" h$ ~/ ~% q- q' K                .active_low = 0,( t1 D' f. j4 N6 ~# o
                .gpio = DA850_USER_LED3,  I2 Z  c5 ^/ e/ \+ k
                .name = "user_led3",
" T1 Y2 ~; Q3 @6 z, L4 ^2 f                .default_trigger = "default-on",! I( B# Q% H# s. s, g: Q1 u' O
        },
, u; D( l3 W( ], b. y};- ^) n0 y* f; ]5 `5 \2 a0 s
6 @- g% |' {# v; R" G; `* p& u
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 w! z; V( y+ t$ @( V
        .leds = da850_evm_tl_leds,% N3 f8 ]1 @3 i3 \
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
8 B& U5 W9 f4 s& G; ~* _+ a) C% ]};% g6 Y2 z6 t9 z) V+ `) ~( p) v# z

' w0 t) g5 }4 \  q# G, w# Jstatic void led_dev_release(struct device *dev)* _8 L1 r$ l& G1 C2 X
{! w  E+ x8 }9 E7 }  a$ `2 E: p9 p
};
1 D$ G, |+ o0 b* W6 J% Z* j% M$ E' E& u* a6 D( `
static struct platform_device da850_evm_tl_leds_device = {
7 p9 s  u7 W2 T+ M: A4 r        .name                = "leds-gpio",( V- X% H8 n6 B+ d; Y2 P5 b
        .id                = 1,
( h# S: v. ^# m8 i: \2 ^3 w* V7 V        .dev = {
2 L3 A- k, b; A# n9 b- E' G                .platform_data = &da850_evm_tl_leds_pdata,
5 i/ H9 H7 ~  L- G                .release = led_dev_release,7 P" i5 W! j0 u- J3 m, ?0 i
        }
/ g$ `9 I5 {# W0 a};( L  k$ l! C% O5 E

- c% A* [6 U5 N! C( X: A$ vstatic int __init led_platform_init(void)4 j& C! _6 L% d% g8 c" y: |. L3 Y
{0 h7 W; p5 a6 e* R# N
        int ret;& j3 g. R1 g3 z' w; P* S
#if 04 @5 |) l# e1 F# w" k; D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" [# j& ~" J) w# A
        if (ret)5 |/ y# v5 `4 o8 A' w% ~& T
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 q5 m% E! E" f& e7 K
                                "%d\n", ret);
4 i8 U; h- u# b+ J#endif0 Z5 n0 k* X. W  x
        ret = platform_device_register(&da850_evm_tl_leds_device);
; M; N& |4 o3 n( ~        if (ret)9 P6 h/ \  e% t
                pr_warning("Could not register som GPIO expander LEDS");
# C8 A  @) e: N' u0 c5 W! Z. j3 ~, t        else
/ v) _1 L9 V' m+ S' i                printk(KERN_INFO "LED register sucessful!\n");1 G* D4 |. i1 m
7 Z) E# }3 t+ M% a
        return ret;1 X( X0 H8 L* b2 Q% o2 l# z6 K
}
. Q/ D8 T- r4 q+ _
2 g- j. I5 L% B8 A7 M& Ostatic void __exit led_platform_exit(void)
& D# s* R$ K* c  M9 C# u{0 ]! Z: V- b8 f3 {" B
        platform_device_unregister(&da850_evm_tl_leds_device);' f5 ^& _8 }8 p. p, Y5 q# A

+ L9 L" l/ Q1 b2 A1 i        printk(KERN_INFO "LED unregister!\n");
( b* n* t7 t4 F7 D, f+ b* X$ u}
7 a; Q. z( s9 g* `3 x% ^
0 ?4 H! P9 e1 s$ q- dmodule_init(led_platform_init);" K0 i1 Y3 J5 L
module_exit(led_platform_exit);2 w+ R4 J  ~! e1 @" R& H# e
( H" u% }4 f+ q% @9 w# C
MODULE_DESCRIPTION("Led platform driver");
0 s) _) Z4 y; h/ A  E2 C& cMODULE_AUTHOR("Tronlong");
: w$ Z5 }5 `  `3 o( LMODULE_LICENSE("GPL");
8 x+ l& M2 J0 ^: N. \6 _. h! \
: E; w( S% E  o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-16 02:42 , Processed in 0.036793 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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