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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ `2 j( o: c( n- }7 ?6 Z! ?#include <linux/init.h>
7 L: w# K4 K- m; `#include <linux/module.h>
- `. {* ~5 G4 E#include <linux/kernel.h>4 Y9 R) N0 h4 c2 @& e$ d
#include <linux/types.h>
1 g6 i" @" M7 D, ]#include <linux/gpio.h>8 i- B+ S3 F! [/ B. J
#include <linux/leds.h>. w" S3 Y2 _7 z* k  Q
#include <linux/platform_device.h>6 z9 P4 d* K! N' `  k' k
7 D/ x8 q& R/ t
#include <asm/mach-types.h>
# h8 E! B) u3 E7 u: g#include <asm/mach/arch.h>0 j% M2 m. A! C5 f
#include <mach/da8xx.h>
- \3 z& ?( V' G; ]5 D+ _, H) n#include <mach/mux.h>, \' H: C9 \. P- u/ L0 k

: z: E- a* `/ U! u#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
3 d- z! x' `, |' r" L: M#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)" W2 ]/ d# L- ]* X* ^: r. l
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
& \1 {- z9 g3 r#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
7 F; x  j- \7 b( c6 u
( Y6 A, B# D1 u2 i& i% y/* assign the tl som board LED-GPIOs*/' f7 E' A, X$ N
static const short da850_evm_tl_user_led_pins[] = {/ B, g! F& F* D+ p
        /* These pins are definition at <mach/mux.h> file */
- i/ K- |8 D! X6 e3 @: x- c. }        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,: J; ^$ y6 T" k/ a3 g
        -1% P$ X" Y% e3 N$ t% M. J, w9 B- I
};
, K  S2 o; c- e' C  I$ k; I" K& \' ^1 L
static struct gpio_led da850_evm_tl_leds[] = {
- G, a% V( m, K5 o; }3 _        {# Y: N' |+ j. j6 x
                .active_low = 0,
" ~, e$ x/ i8 `3 j4 ^4 j                .gpio = DA850_USER_LED0,+ I8 [$ j7 X3 @
                .name = "user_led0",( h' C1 M, k0 P1 V* S. I
                .default_trigger = "default-on",: b1 w# J1 \: ?. ?! ]& O
        },8 z. V4 t7 q+ C- y6 v! w% G
        {, ]3 x" e% O" {* f/ e9 g
                .active_low = 0,
) B/ }9 n; w1 x& d                .gpio = DA850_USER_LED1,
3 W$ E7 W. m, C6 K2 `                .name = "user_led1",% }' F* D8 k0 r7 `( P" N
                .default_trigger = "default-on",
2 ~& X# K: ?2 U; [4 p        },& x9 \3 _) L; F: u7 T
        {
7 k, h! V  k" N* S: r                .active_low = 0,
' |$ w0 l/ z' ~* S+ V4 e/ B                .gpio = DA850_USER_LED2,
! d  k0 n' m4 C1 z# o                .name = "user_led2",) r' i) n/ s" I4 M- N
                .default_trigger = "default-on",/ g  T2 k" D0 n/ H" p( [1 ?: U% j% m
        },
& Q: l3 h7 e& P4 k) U        {1 A0 S; O' a* \5 `  w' [  v, }
                .active_low = 0,
- Y1 h+ m, d6 R3 h$ c) o8 Z2 {                .gpio = DA850_USER_LED3,
3 O6 Q' |9 n# o' K  \. W" _) c                .name = "user_led3",
8 |% x: C% W. Z  w% G6 d                .default_trigger = "default-on",9 I1 D1 T. A1 P4 ~7 t$ a, O
        },
) l/ Y7 R# d( b# d* d8 q7 }' \};
" C8 N( d+ N& y3 ?9 b$ l. n( `! I3 a/ t% L* Z% s7 j
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 z. E6 M6 z5 B  ]) W
        .leds = da850_evm_tl_leds,
2 C. u# }( R6 r- ~2 R3 H1 T, r        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* a" o& i2 B3 w! }( e7 p
};
$ o" Y' F) T+ K% P
1 a$ F0 F( S/ b% Jstatic void led_dev_release(struct device *dev)/ @% i2 x; k3 P" B# G
{  [& c8 c( h- L! d( e" a
};
0 p0 G' M5 t) F( k" O+ @9 F
9 s" @" `9 _3 r6 I. wstatic struct platform_device da850_evm_tl_leds_device = {5 Q0 P% f6 s9 e3 {, _
        .name                = "leds-gpio",; Z% G' N& b4 Y1 I4 n+ ~
        .id                = 1,! |+ I1 ~- ~2 N1 [. S1 `
        .dev = {
" l& @3 F. P( n7 h# A                .platform_data = &da850_evm_tl_leds_pdata,
/ ^$ m3 [4 o% \0 q                .release = led_dev_release,& I) p' r: Q$ @) J
        }9 o$ [8 [: @7 U. J
};
; J9 Y: |; D; o3 V6 c, e
( p* n. a  H. C. o  Jstatic int __init led_platform_init(void)
' ]6 E* v% M- g9 B{
# Y& v2 M' ~9 I/ X$ V        int ret;
; W) C  _1 [) b$ \7 a#if 0
+ \( o$ P9 U9 l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 {- i9 e: C8 n' @" _
        if (ret)
& O- t: v" L. d, F8 b" J( U                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"8 J4 E" u) Q& k+ A
                                "%d\n", ret);
2 O% A- _/ @; W' V  s& q1 l1 d2 x3 v#endif. @5 [1 Y5 c/ U3 l1 O7 |
        ret = platform_device_register(&da850_evm_tl_leds_device);8 I0 v( O  E! ~: Q  s* v+ }; o# p
        if (ret)& a  }% J: o9 A% Y: }- o/ n, R
                pr_warning("Could not register som GPIO expander LEDS");/ B& s) U& a- E' \- V5 f1 R2 x
        else
$ q6 V2 E! y1 s( C5 D8 w+ \                printk(KERN_INFO "LED register sucessful!\n");
' M" i3 ?! c% d4 D/ {
* Z% @8 ^. k+ X- R8 ]+ r        return ret;
6 b0 O5 }$ r) ]7 ^}. G" c4 d. ?; v1 @6 B5 L+ g9 ^

/ ]4 s) f1 R& p! C( @( L' Gstatic void __exit led_platform_exit(void)& e+ ]1 [- Z' i
{
7 L5 b- s3 J  y# ^: G6 y        platform_device_unregister(&da850_evm_tl_leds_device);" l# k* \- W8 y0 ^6 l

3 y. a* h# z& t! z        printk(KERN_INFO "LED unregister!\n");: E/ K3 A2 v- l! R+ c7 A
}
) ]) B" ~( C6 A7 w$ d' e8 y, ~4 I  ^6 }! \( i2 k+ l7 G9 E
module_init(led_platform_init);3 c4 U- F% j% o& l2 [# y+ E4 w
module_exit(led_platform_exit);% Q' r! e: a" J9 R

8 D' h  h# o6 }6 M% mMODULE_DESCRIPTION("Led platform driver");
3 q2 N- f% X3 f. X0 lMODULE_AUTHOR("Tronlong");
0 i) H5 P5 c3 S  [" M. }# jMODULE_LICENSE("GPL");
" K% [% _: B0 ?2 o; Y2 R% u  H% U+ K) D7 q3 i- N) T2 S
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 10:32 , Processed in 0.069380 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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