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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 z  p( N  S5 W/ a2 t# `+ f
#include <linux/init.h>$ E( X; R) A8 l
#include <linux/module.h>  W/ a+ M0 U! {3 a  x, i! i
#include <linux/kernel.h>
/ B( k/ V+ e. ]' r& M#include <linux/types.h>
- i/ |0 o( Z2 n; k! w+ f#include <linux/gpio.h>
/ ^: v0 Y! L4 o. ^% i" W9 ]#include <linux/leds.h>
, r  B. U  j% Q- f: }2 t#include <linux/platform_device.h>8 q9 T( L3 R* Y

# c6 p% R7 j0 \#include <asm/mach-types.h>0 m: q; R( s+ Y7 f5 H! [6 f
#include <asm/mach/arch.h>
# b( o. C4 f0 b/ k3 \5 A! s#include <mach/da8xx.h>
" i- a9 h3 o5 O, k4 {0 D#include <mach/mux.h>
" ?  O* P0 T5 a8 X+ J8 s; A( {& U4 F3 W
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# P% B0 Z! b6 E$ s
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)2 m& {# Q0 d2 d. k
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 C/ r9 O: n7 d6 y+ x' Z. p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
0 v4 e6 O* Z7 _
* C7 g% a+ p& s& r( D/* assign the tl som board LED-GPIOs*/
. ~" \5 o2 H1 p. d9 \* @static const short da850_evm_tl_user_led_pins[] = {
$ n9 U# s) f$ t5 c4 A5 {! S        /* These pins are definition at <mach/mux.h> file */
# D0 K/ M- ~0 f, w% b- v        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: F* }4 Y6 z4 @6 u
        -1
: M; d4 \  d8 [. U};
' m2 _# \' J! p+ f$ s8 h* L0 Q, |$ a+ I' H1 x1 S6 G
static struct gpio_led da850_evm_tl_leds[] = {  U7 P' Y* Y: g! s0 W# C
        {
" C0 r) W1 V: K7 [- q( o, a: l                .active_low = 0,
/ X1 X$ ^- U7 z) \8 A                .gpio = DA850_USER_LED0,
9 j/ i# c; Y) }8 k' u" h2 s0 K" v                .name = "user_led0",
/ [1 {; J" X" t0 e; p                .default_trigger = "default-on",
) a9 a; m: n( n* K        },
- D( D/ ~; X9 q        {
5 q7 i  r- k, y9 x                .active_low = 0,
; ?2 Q! M- t1 H                .gpio = DA850_USER_LED1,
, C7 Q, u' L/ l5 V                .name = "user_led1",
; H$ U" x) d$ S; a2 |                .default_trigger = "default-on",# o6 g2 S3 @7 ]9 \2 P4 s3 o8 I
        },3 a3 X( `. L: s. |, A3 Y* i
        {
8 L& h& I, e$ j; G  B" g0 H                .active_low = 0,
+ a& Y% y% S; R+ l  e                .gpio = DA850_USER_LED2,
+ p& n4 q4 o! F: T' P- a; K6 x                .name = "user_led2",4 h' I5 p2 k+ o) @0 F% @
                .default_trigger = "default-on",
  q1 R0 g" \$ z- j! b* L        },# K7 g6 |: Z" J  k9 s. Q5 C2 t5 H. |
        {
- m0 `# g% x" c5 b' a6 ?! a                .active_low = 0,
- F3 N! ^& m( v0 G# U$ O                .gpio = DA850_USER_LED3,
* C3 [: d: t* P( ^( l                .name = "user_led3",
6 K9 @7 G5 t, k( E" t3 u; t9 A% f  H  M                .default_trigger = "default-on",
7 C6 z( s4 Q6 D        },8 Z3 }) u  z. g% [$ N, J4 @- Y
};
- l& ~8 C9 y9 K& w
# I1 i( G% V7 x: F) R/ @1 rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
! r% t, W% M( y3 ?) K9 n        .leds = da850_evm_tl_leds,
' S% k% g& m; u+ N6 ]        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 u  j/ F, j+ L( C; }
};
0 O( {# O  l" l. s2 e* x
+ Z; I" n. C4 z  `$ ]: U9 @' zstatic void led_dev_release(struct device *dev)
( a$ \% S1 W9 E- u, A{  {* G  z' a, B- [5 `& |6 U
};
. V) K- X) P0 i, A" R2 t1 e; `+ ?
2 Y. _! L( Z' {; C2 y4 O0 {. cstatic struct platform_device da850_evm_tl_leds_device = {+ q2 I: f8 u7 X7 E) \% |
        .name                = "leds-gpio",! {. A& {. Q) O! h  s2 H
        .id                = 1,! o1 a8 y4 j6 G( M
        .dev = {6 \- K8 ^8 G3 q, E" j4 e
                .platform_data = &da850_evm_tl_leds_pdata,$ `9 D. ^& r/ j. N
                .release = led_dev_release,
! |/ ]1 G9 o/ h; k6 J        }
! b4 H0 s3 Y+ R: L6 l};
; [4 z$ P  G5 ~( v- @3 T0 U1 W) R/ z+ k. ]0 e/ }
static int __init led_platform_init(void)
6 J+ A( m7 w1 _{# ]5 [$ Q2 O7 _' j' g$ t
        int ret;% n. w/ q: [+ G. N0 T8 U
#if 0+ i9 U8 x  }# h- y$ E! j$ P
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);- t0 B5 K( ^- Z
        if (ret)
7 `: u' d& g1 a8 v$ g( j# \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"+ G, C0 U5 P1 f8 {
                                "%d\n", ret);
+ {0 h  c! U: s. G; v# n& b#endif6 z* `$ {5 ]9 \; O
        ret = platform_device_register(&da850_evm_tl_leds_device);! O' s% C* [4 }1 F1 A  b
        if (ret)6 g6 D1 K) m7 |; x2 `6 Y! ^
                pr_warning("Could not register som GPIO expander LEDS");
$ Z# S8 M1 T5 F: [        else
) C7 g1 t7 S6 j0 a: o                printk(KERN_INFO "LED register sucessful!\n");1 q  x9 K: h$ {

9 f( }6 i) e3 W7 A        return ret;$ `. x; t0 L, d" r; S8 J* W& t
}
$ d- i" s; D9 v; m; U! s, a3 ]6 T
8 R3 y0 z$ a: i4 G& i  }0 v5 Lstatic void __exit led_platform_exit(void)# }& H  V8 T. M
{
( i: ]- \6 p' v( J* |9 z        platform_device_unregister(&da850_evm_tl_leds_device);4 }( E9 X& v& a" o/ P- o$ X2 f. q
7 x0 |# C1 X/ q1 V' V9 j  P
        printk(KERN_INFO "LED unregister!\n");+ O) C6 |: H9 F; d) [( v
}
7 b9 W2 F# @. v' d6 D9 ~& {+ _5 v
9 O- e- X. I& |' s0 v# smodule_init(led_platform_init);; R& E' G4 [& Z6 n( t7 C1 }" U9 M
module_exit(led_platform_exit);
$ Q: W1 r0 \& A; @+ I5 F8 S4 k3 v
9 [" n4 i. D  h' m' @. a! RMODULE_DESCRIPTION("Led platform driver");. h1 p5 B! c7 {2 `* h' x2 j* F
MODULE_AUTHOR("Tronlong");
0 W& Q/ |6 Q( y4 UMODULE_LICENSE("GPL");
! H% \) T" v6 y0 w- Y0 b) j. V
% J8 }9 ~/ j+ E  ~2 ^. s3 x, z
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-20 10:39 , Processed in 0.038746 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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