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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。! `+ V, M. P/ o/ P& k1 M0 s/ q; n" \
#include <linux/init.h>7 L6 ?/ i; t. B$ c
#include <linux/module.h>3 {3 \& M/ U8 Q1 Z" b
#include <linux/kernel.h>5 J( x# t: u( e& j7 O% ?
#include <linux/types.h>6 @3 U8 b, L% `9 r* }
#include <linux/gpio.h>
! M6 S: l5 \( Y& |4 U#include <linux/leds.h>6 J1 R8 ^3 J; p
#include <linux/platform_device.h>
" ~! N8 B, S2 c/ j- G$ i! w. `  V
9 m8 n& |4 y- t# ?. M#include <asm/mach-types.h>& f3 d0 v6 F+ D3 ^
#include <asm/mach/arch.h>$ `0 Z7 @( ?' P' S9 w# q+ f
#include <mach/da8xx.h>
+ i2 m. n3 n/ u- \- G3 ~#include <mach/mux.h>0 n$ J- g/ e* z/ n

& {. b4 l$ V7 y% o% W3 _6 U% s#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
  C) Z9 u: C' U2 p' b9 W#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ V' {, s9 q. S" ~. e0 T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)! K' S  ]& q8 P7 \. @2 i! \
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
2 q: y( @. f" [, U, p2 y0 @1 ]( V* ]! Y+ O; e9 N) y
/* assign the tl som board LED-GPIOs*/( I# B: w7 b4 f- G
static const short da850_evm_tl_user_led_pins[] = {
7 L7 g% v4 W9 i        /* These pins are definition at <mach/mux.h> file */
: L2 k( n' S, t6 Z        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
& Q6 _, s8 }" I/ ^, P        -16 j" F: B5 N* ^2 R5 Q0 ~6 s; |
};( @" z1 p- o+ j

! f. T+ w, C  J+ `static struct gpio_led da850_evm_tl_leds[] = {
+ O* b5 F1 h3 c* b7 C( w        {8 C- \3 D  a  m
                .active_low = 0,
& M. r$ D) S7 z9 k                .gpio = DA850_USER_LED0,& ]% \1 D( }. E- R7 i
                .name = "user_led0",+ U! ], O/ I3 G$ ]2 g0 O0 _7 S" _
                .default_trigger = "default-on",
9 u, w/ \: v- y0 E( [" D7 E        },
% c( v* {4 J  p' A        {
* ~  X3 K0 c1 S* V. J6 H# }                .active_low = 0,1 {/ ]0 p, `8 J3 y1 q+ Y% m  d
                .gpio = DA850_USER_LED1,
$ q# A. c/ b: Z, j3 A                .name = "user_led1",5 z) c4 R" f5 @/ E- s- S4 ~$ i# g
                .default_trigger = "default-on",
. M! j7 L0 a  @$ u  m7 t        },
  ^3 [& |% `4 J; t4 S5 b2 @7 p        {* O4 |( W* j" ^: g  a4 y6 Z* o# U+ A$ w
                .active_low = 0,
: _! h9 R9 H- x# P3 n/ l                .gpio = DA850_USER_LED2,4 U" U9 i% |; A
                .name = "user_led2",  @& j  K4 D0 x
                .default_trigger = "default-on",7 y& i5 x& e+ s: h
        },0 J9 V3 D# J* D+ N4 S4 y8 ]
        {7 K8 u# R: O# j2 s) u$ C0 k
                .active_low = 0,
7 O0 L9 s+ P, @3 Y$ K                .gpio = DA850_USER_LED3,* b7 k/ ?+ p  e5 U
                .name = "user_led3",9 \/ Z$ Y* E  X& R' X
                .default_trigger = "default-on",
' h6 y! g1 U' }  w, T0 O        },5 V; P$ M6 t# ~% p
};
( b- Y- b! Q  i* g. H4 A
) v! ?/ g# r" h. a5 @: R+ lstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {9 \+ ~- z# ~+ ~+ a  f
        .leds = da850_evm_tl_leds,2 I& v4 w3 W$ r- c1 g3 I' P
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),/ ?: j; r* {0 o7 n$ r3 @; q
};0 Z: V4 P5 ]  N, k3 c/ B- o$ k

- G- J7 B1 q0 Q( N5 n: U6 sstatic void led_dev_release(struct device *dev)
5 Q- y6 y" V2 y  O  ?1 J/ U( a{& F3 P( j1 i) C6 }% B' D' U- c, ]
};
3 H+ j) r! h# l% N1 f3 x: `. S  q$ g" h: ]5 A
static struct platform_device da850_evm_tl_leds_device = {
% o6 i( [2 b$ e8 t3 f        .name                = "leds-gpio",
. ~* c, [7 }4 P. C' O( X        .id                = 1,
+ J) R. \5 J$ h: z        .dev = {$ ?# o* d7 j2 j0 L( m
                .platform_data = &da850_evm_tl_leds_pdata,9 F9 ~' j$ o/ X
                .release = led_dev_release,
& y# t! N* V3 f( H! m- K( I. g8 H        }. D: @1 E, ]% u( ~$ I$ ]4 a
};
& w* I* Y+ C+ R& e4 x$ P
5 I7 ^+ R  V5 B4 s: ostatic int __init led_platform_init(void)
$ T8 f3 I! w. \7 x% V4 S! g0 i{
8 E7 Z6 P9 G% _' Y4 o/ M+ p/ N        int ret;
! i7 ~; Y& G3 M% ?- i#if 08 f7 z: }4 k! e7 @2 [9 D4 m
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 E; H3 v4 X0 Y; ~0 ^1 {        if (ret)" B, j$ x5 U4 |2 _5 Q1 p
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
/ {. R6 i* k) D                                "%d\n", ret);' a4 f* [( b+ b0 f7 g
#endif
: `8 |- i6 ]' F6 S. Z2 T9 A        ret = platform_device_register(&da850_evm_tl_leds_device);
* w. P8 f7 B# R( g5 B        if (ret)( z1 w3 g& s9 Z# b3 k5 G( p
                pr_warning("Could not register som GPIO expander LEDS");' l7 |. O: `# L; }6 T
        else8 I, i$ q( u- ?4 ^- w" |/ G5 y
                printk(KERN_INFO "LED register sucessful!\n");3 ~9 @, z! \- @( d
# P+ R1 a' m: O9 l4 p% u% y
        return ret;
- O0 B; Q5 ]: I4 }}
* A5 j+ {* S0 k3 v! G9 m0 ^# i
- L  U) w  ~) z% N/ X, @static void __exit led_platform_exit(void)
% a2 w  o8 ?1 B/ `4 O7 @{* c9 Y8 P  ~. y  L0 b* a: w
        platform_device_unregister(&da850_evm_tl_leds_device);
' E6 L! w# J4 b8 A7 ]- u! p
% M5 J6 R& }( z* V7 |) S$ e2 @  X        printk(KERN_INFO "LED unregister!\n");
- @9 M) W6 _$ E0 Z; }. P}
% h* @! g1 L; X. |
! M1 @& V0 R- g1 z: Wmodule_init(led_platform_init);
- d/ D2 f+ u/ N9 x8 V4 Y+ Gmodule_exit(led_platform_exit);
6 G5 \- d4 w3 E" `8 r4 E8 W$ o4 S4 X0 `; v. v/ \  v& B
MODULE_DESCRIPTION("Led platform driver");4 w  ]" d- C5 _$ Y3 Y' S0 j, h
MODULE_AUTHOR("Tronlong");& K, {+ w& U; n9 ?2 k% T/ ~* q/ ]
MODULE_LICENSE("GPL");
  G# ~: d; x: N1 y2 Z7 G' J& H5 Z% J% _% v3 \. q, \3 L/ e+ a+ ]! }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-12 08:17 , Processed in 0.044313 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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