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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! s% V3 r. N! S( h; q
#include <linux/init.h>2 x4 d, M  [1 K5 N! [) z. j
#include <linux/module.h>
1 L9 h& o3 }( r3 c8 P4 f, i- z1 C#include <linux/kernel.h>, W8 v4 L5 f) `
#include <linux/types.h>
( I4 |: Y8 J: ?' M#include <linux/gpio.h>+ _/ ?+ {2 T, ]5 \5 ^) i5 T
#include <linux/leds.h>
2 j7 T9 \; Y4 |& E# N#include <linux/platform_device.h>
) _7 m7 I/ [' b/ F$ H7 }4 E6 Y5 j2 `! G
#include <asm/mach-types.h>$ a- @  G) j9 G+ V- X. J& u3 I+ ^
#include <asm/mach/arch.h>( D  x/ x2 z& R" k
#include <mach/da8xx.h>4 W0 z$ w& x" X% S, N4 x' j
#include <mach/mux.h>
! ~7 n1 q) [' E
* ~7 o( F) P: B% _" l' i#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) G5 e+ e8 w" ?; c#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" m" ?, O$ l7 M/ `! R1 y6 N#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 U9 I2 B  K/ [( u$ M3 @5 p( _
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, n3 t: {8 i! f" U& T& Y5 M! k% r, v. m5 `
/* assign the tl som board LED-GPIOs*/
. C, D8 g# |' ?2 p) f9 mstatic const short da850_evm_tl_user_led_pins[] = {
+ B/ s" H" J# S+ O1 m* D        /* These pins are definition at <mach/mux.h> file */0 A0 _1 d- R6 p9 ~  r; T
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& a! `8 @. ]" w  ~& i. H' R        -1
8 c) T0 R9 m4 K};
9 h8 E5 J* K2 V5 q3 [; K) Y! n: Y, p( M$ S" z
static struct gpio_led da850_evm_tl_leds[] = {" ]+ y9 }# h5 c$ L( z, E6 m# q
        {1 w% V0 Y% @8 d7 W  v
                .active_low = 0,
) q$ C5 {& w5 p" R                .gpio = DA850_USER_LED0,
: x) i4 l3 N' z, X3 C                .name = "user_led0",
, c) Z) u- B! U/ D" Z                .default_trigger = "default-on",
; _4 T" ?8 V4 n1 V        },/ |9 y! j$ ]9 r9 Y8 X  r. {
        {5 H9 l* R; n8 l9 U* p. l
                .active_low = 0,
+ a" u, j' ^# r* i                .gpio = DA850_USER_LED1,
, v7 r3 L7 |6 q6 N5 ~/ T; Z                .name = "user_led1",# \% l. M4 w  m9 j! R7 }8 }
                .default_trigger = "default-on",# Z9 C% F9 m5 Y3 c# G
        },! t6 P* @& a- u# |0 J
        {9 I3 i, f9 `- @3 ?: H
                .active_low = 0,
6 a0 {8 P7 g9 b6 M                .gpio = DA850_USER_LED2,. ~1 s4 `' Q+ h  o: F- ?9 x1 r; Q
                .name = "user_led2",9 {, y  @( J4 H( D- p7 S% S6 x* }
                .default_trigger = "default-on",
/ v! e- O# ~, `$ N+ g        },0 T8 d/ o4 N# q; F
        {8 E. _7 J& I7 C. h
                .active_low = 0,
% C. b5 H7 c) b) }5 I                .gpio = DA850_USER_LED3,
7 B( S( `4 t; v" ^                .name = "user_led3",
% p7 }! i! m4 F6 X                .default_trigger = "default-on",
0 G( k9 r2 O, f" C% _9 p        },
$ B6 p& {4 A8 R};
0 P- L3 ?, h, r( H" B. D6 W# O2 u; ?& S, t+ k2 X' V- X* k5 Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
% `. r5 ^) F/ H5 ~) y- w, r/ I        .leds = da850_evm_tl_leds,
: l; f# z- H' _8 x5 V        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
, A8 A$ V+ ]' N& ?# E; M};
1 m; f& ~# m4 G( m$ }* [
% F0 X; @2 F* m  A7 u' N2 sstatic void led_dev_release(struct device *dev)
8 R. m9 F: K( y6 _; w{  t) t2 J1 p0 y  w3 @; i8 ?
};
, |8 Q# R# V, D4 w7 F9 L) I, `" ^4 B  K
static struct platform_device da850_evm_tl_leds_device = {5 x$ O( C( v) @* D, X1 O
        .name                = "leds-gpio",8 i8 V5 S- ]% c  x/ n# C# M: L
        .id                = 1,7 F4 {0 J- k3 D' x
        .dev = {
& b+ u# \/ ]" D+ M3 V8 }0 c                .platform_data = &da850_evm_tl_leds_pdata,
6 N" ]+ d8 k# g5 t/ Q! ^8 D/ P8 A) b                .release = led_dev_release,
. @& z+ A- `$ g( j- ]' ^        }
) A5 t; P$ }, S  x1 v0 X( @};
' E; f  j! F8 j1 z! N
6 z7 G; c. U$ L7 \+ d" o# hstatic int __init led_platform_init(void). n, @8 T7 E2 F# B- R  c! x
{4 A" S& }2 w" h$ L( p
        int ret;
& p( j8 P6 y  ~#if 08 M4 I4 w( V; A
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);; _+ C8 j# v9 E  B8 |) e
        if (ret)
8 }) j  n5 U3 ^! R* A5 H* Q5 b                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ p& v" u6 a( e  H- A
                                "%d\n", ret);7 f3 ?6 {- G& o  H1 T. W
#endif) }) o1 x& M" W9 N( T
        ret = platform_device_register(&da850_evm_tl_leds_device);; J) i6 l- m* N" |6 v4 P( c* @- ^
        if (ret)
# Y# q! X& B3 H' l                pr_warning("Could not register som GPIO expander LEDS");$ `' e% l9 U; v/ }( n) z
        else
$ f$ k9 Z# [1 m4 h! f% Y! a                printk(KERN_INFO "LED register sucessful!\n");, z$ K5 A- O/ ]& t+ E) d: Z; Y
; y# O' y) W8 m* p! V/ y
        return ret;# J3 c( V, `  m7 B2 V0 c9 Z( b5 p4 h
}2 \/ @6 s! }, G4 B5 T" _
8 m+ [7 {- ]; l7 J! r/ a/ r
static void __exit led_platform_exit(void)" _6 A9 z* G8 H
{/ \+ l" O& g2 u7 `6 v6 E; h
        platform_device_unregister(&da850_evm_tl_leds_device);" U3 L9 p* {* J+ ^( B
' e2 }* a6 Q' Y$ h0 @$ m& j
        printk(KERN_INFO "LED unregister!\n");
$ r$ c. P7 X9 G. C  L5 K0 [}
6 v4 i! P* r, X$ H& ?
3 t$ ?- V1 _4 Imodule_init(led_platform_init);& Z, i. R( J4 i9 o0 z- g( p
module_exit(led_platform_exit);
* s- X" N. o% z5 n- l7 e( p* x+ N. z5 }; Z
MODULE_DESCRIPTION("Led platform driver");( ]; r2 m$ \; Z5 I0 M5 V! y9 e
MODULE_AUTHOR("Tronlong");
' Y5 ~/ k+ @: v% |6 ?6 IMODULE_LICENSE("GPL");+ F$ R! t, L* a3 `7 g

/ p8 J5 D" B% ^# M4 C, O' N
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-7-31 03:21 , Processed in 0.040756 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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