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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。" q) }1 b2 p: V, G5 _" P! u
#include <linux/init.h>! L  r- v- t/ r2 K+ }6 Y) |8 h
#include <linux/module.h>
# ?5 G7 z8 a0 F+ k#include <linux/kernel.h>
- S. j* v4 V  M* j! J( v( w#include <linux/types.h>
3 \- C; }0 Y$ g/ g! L+ _#include <linux/gpio.h>
2 X7 V' ?7 `: V# ?#include <linux/leds.h>* j- P  v/ s5 X8 H
#include <linux/platform_device.h>
: l( p/ |# K7 w- {. }
9 o; a" [7 j$ T( A, P+ r: g* t# J5 V#include <asm/mach-types.h>& T) M  f$ M" ?
#include <asm/mach/arch.h>
' C( a6 i3 v4 {4 u2 t#include <mach/da8xx.h>
; I  H: C3 b' X+ N#include <mach/mux.h>
, z# v& h/ a# W$ N1 P6 {+ G9 ?' W& O3 N9 w
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)& X* l/ c2 J! c" K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
- a1 ?" X3 G0 N) W#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). ^6 |! I7 F0 Y4 O* `8 E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 y* p2 ^( P" r( e4 T/ M9 x5 I. i: `; u8 _* J
/* assign the tl som board LED-GPIOs*/* z$ J( Z7 s; o! N
static const short da850_evm_tl_user_led_pins[] = {
1 {7 k- H4 y/ Q3 G# ~; c        /* These pins are definition at <mach/mux.h> file */' ]! D+ A2 W1 U) F
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,9 I9 a/ O7 Y" M; w( n
        -1
$ b# L, i2 S; Z# g};/ i4 s. J# t) d9 \* U: J9 {
# F8 f. _' j; d) S4 Y: A
static struct gpio_led da850_evm_tl_leds[] = {/ D( h9 @% [+ i$ G- ]
        {
$ q( s( [* d3 H9 J7 A4 Y8 `                .active_low = 0,
( E6 _& ~) ^& V: A; y                .gpio = DA850_USER_LED0,5 z  V- D) V8 X7 f
                .name = "user_led0",( T/ q/ [' ?9 c, O# l8 u9 k
                .default_trigger = "default-on",- x4 m; Y" b8 x. f
        },0 _, D3 a- }, M4 g
        {! y+ z& S/ q' r& \; R' s$ X5 h
                .active_low = 0,
/ u6 H5 s! T8 t8 \8 A7 d                .gpio = DA850_USER_LED1,6 ~9 f  B' n4 R' _; R! I1 v
                .name = "user_led1",: |" p! e8 d2 v
                .default_trigger = "default-on",; Q4 }6 N7 Y: l
        },
: D1 `( k) r3 [1 P9 O- [        {! R) ~% I$ b" K4 F' V- S
                .active_low = 0,
  d5 ?2 m# r* q- i3 Q                .gpio = DA850_USER_LED2,7 U( O# [' f/ s( X/ i
                .name = "user_led2",
& u  I/ B5 d+ [; b8 M- f6 N( z                .default_trigger = "default-on",8 K0 I! l8 u5 P* [' f. i  ^
        }," f; C1 U% _" R9 L: a: J
        {$ S( F1 W5 y1 ~: B) ]# ~* \/ i
                .active_low = 0,
, c2 P+ J8 a" Q                .gpio = DA850_USER_LED3,
6 h- S" ]% q  w* s/ L9 A4 a                .name = "user_led3",
% y6 |$ V. s$ |7 ?                .default_trigger = "default-on",
1 \1 U3 a- d9 ?- D        },0 Z) R( C4 R" n7 }
};
( B7 ?: b0 C% u- F8 o8 b1 Y  h
; G. L9 ?7 h7 d2 j  V- s3 E+ E" Wstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {1 M( \0 Z) V; T. _0 n+ T' ?2 C5 ?
        .leds = da850_evm_tl_leds,9 }& x5 {! ]6 w4 X
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
1 {# j) t2 A) }};# U! X$ L; |6 g+ f' m3 j9 O

: y, k. N# S! E& O$ X* astatic void led_dev_release(struct device *dev)
9 A2 F& }2 r: x9 y/ a: X1 @6 `3 O5 u/ M{
, S  Z! Z/ q9 U6 K; J6 J};7 ]/ w) e/ k" j& j$ F# l: }

: J3 c  ?& {  e& o: [0 q- vstatic struct platform_device da850_evm_tl_leds_device = {
. P0 Q9 o: G  A5 `$ V5 e$ ~8 c) C        .name                = "leds-gpio",
5 I( r& N, I9 {' I  d. C" J/ _* U        .id                = 1,
& F& Y! y7 H- ~% P: Q        .dev = {
5 f7 W) J) P$ R& d! X6 J: w$ E1 A                .platform_data = &da850_evm_tl_leds_pdata,
# [6 f7 H! R8 o+ C9 R" B                .release = led_dev_release,0 V2 b) o, D1 M7 Z  ^5 u
        }
3 |, O( ~" f( ~8 w. [};9 H. H4 d8 e9 F8 K

6 R, t6 `5 v# i8 xstatic int __init led_platform_init(void)* h3 P% ~$ V9 A) j* i' k
{
! d8 U* d8 f5 C5 h$ I8 V0 z        int ret;6 u2 B! ~/ F( ?% @
#if 0
4 G; ~/ j7 p  v1 |% x- i$ c        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);7 G4 x6 q0 T, t, J0 d% K$ ?
        if (ret)
) e/ e' Y2 t- u. X% h: L5 `$ c                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ L* z  N, F. |. ]                                "%d\n", ret);
# \% g' @. t( b( c& u#endif8 c1 X2 n3 J7 I+ Q9 `$ J
        ret = platform_device_register(&da850_evm_tl_leds_device);) F% h: ?0 W. n. }
        if (ret)4 o3 N. X7 e+ D3 W, o; }! F# A3 S5 D
                pr_warning("Could not register som GPIO expander LEDS");
- H6 w4 o8 M1 ~* P& [6 r        else+ R/ B5 Q9 }3 h. F2 |) G0 F0 L
                printk(KERN_INFO "LED register sucessful!\n");
  G; `- Y& l1 N1 f  K' v. H, @2 U
" z& P* ]: o' C6 M3 l        return ret;
3 Y1 [  o6 Q" w  y' s* d8 Z}
8 |! j  I$ T5 R% X9 x+ h) y
. U3 u6 V1 k6 ?6 ?, J7 K4 |; N( Z/ Ostatic void __exit led_platform_exit(void)
1 o+ i7 `0 }& @/ p9 @. _{
6 O2 J7 z) V) j9 K        platform_device_unregister(&da850_evm_tl_leds_device);
" P. v! T/ ^- I: |
4 u" ~) l4 T. _) h# W        printk(KERN_INFO "LED unregister!\n");
. ]# O' S# e& q/ [4 M% M+ L- H}6 r* f( c( e, _4 d' m
* @# q5 J2 `, p7 s
module_init(led_platform_init);
3 z: |4 A( g2 ?0 Q$ }4 T; `module_exit(led_platform_exit);
  P2 ]7 |7 n9 I# i& T& h. a- Z5 w: ^1 S9 k- z
MODULE_DESCRIPTION("Led platform driver");/ I( n+ k! l8 o1 y4 r& [# x/ b+ O- Q
MODULE_AUTHOR("Tronlong");
% L, |( J. U/ R! O% lMODULE_LICENSE("GPL");& D  o; w  O' v

2 v% C( A+ u6 f$ q0 K+ R
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-5 04:41 , Processed in 0.046596 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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