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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
5 r; W  @5 c1 W6 a& a#include <linux/init.h>
0 b0 K1 R$ m9 X9 z#include <linux/module.h>
# r* ^, y# h+ o; g" w6 e" ^% W# Z7 U#include <linux/kernel.h>
0 R3 l) h5 [( j#include <linux/types.h>
( i! G) s, a$ z#include <linux/gpio.h>( k- m" j3 O- l# \; u/ H2 U; s
#include <linux/leds.h>* v& G# n2 Q6 m) A5 k
#include <linux/platform_device.h>
% I1 {/ Z7 o# `4 N+ u/ T* ]: B  L4 J9 U* z! a
#include <asm/mach-types.h>
- _& x# F( L6 w6 h4 P: e4 O: y#include <asm/mach/arch.h>" I3 X% l* i6 E9 p  V  M' S- K
#include <mach/da8xx.h>7 e4 e% e; P2 \  q/ U* q9 V' E
#include <mach/mux.h>( t; N& s, o! ?& y

. k: W# e0 L& V9 L. s1 N- _! A* j+ [#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* b& A9 v- s2 E& n8 q
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)& p  L3 w% R/ ^( l/ ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
5 O7 F! V% y6 u% g  Q#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 ?, Y# T2 F6 {# Y' U0 r

7 P& r" N; M. ]6 X! O/* assign the tl som board LED-GPIOs*/3 @9 V, [# X/ d  d& D! a* _
static const short da850_evm_tl_user_led_pins[] = {
) U+ g( U& ~% h0 S& G        /* These pins are definition at <mach/mux.h> file */
2 A- L( p: W# ]& |0 i' w        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
1 V/ \5 u; Y- b! M7 [- D        -13 |7 r- i) T' a; ]& }% l2 E' Y
};, E$ E" W+ ]! X$ L6 C

3 E! }6 O" ]* a) E( S4 d/ Sstatic struct gpio_led da850_evm_tl_leds[] = {! j0 L% G1 n! V9 c
        {# W6 V* W& o8 ?) H; Z
                .active_low = 0,4 h- k! i& K# D6 a7 y6 H
                .gpio = DA850_USER_LED0,
$ p* Y3 j; S) L7 h) x7 A' V                .name = "user_led0",
/ B: X9 ~5 S" P) ]                .default_trigger = "default-on",
( ]( h( d5 A* a# k        },
* W( U- {* Z: \% R        {! _0 l1 j7 F4 D$ ^# H1 W' M
                .active_low = 0,) t$ @2 l+ i; {
                .gpio = DA850_USER_LED1,+ C5 Z9 n; p: C: j' {3 D
                .name = "user_led1",
& w- }' `5 j8 Y3 R6 _" q                .default_trigger = "default-on",. o. b, W/ M: _3 [
        },
6 E: J9 c  x6 U, n! B% C9 v4 y        {
3 X/ l7 A& G" F* n                .active_low = 0,8 i  [' X0 Q, M+ W
                .gpio = DA850_USER_LED2,: b2 \; K1 ]0 l0 |
                .name = "user_led2",: X8 ^$ K) ?( R' h& x! j
                .default_trigger = "default-on",( ^" l! p! k: ?3 G! F3 p& `
        },
5 q6 L, L; T" P( x& u0 A8 }        {: x5 _* V/ C+ S, _& G
                .active_low = 0,
: v0 \8 O; d+ ]) ?                .gpio = DA850_USER_LED3,
1 j  Q5 A! V! D4 M3 ?3 E( c                .name = "user_led3",- h3 F# E/ G0 ?. V
                .default_trigger = "default-on",: ?  z: L* c' B& U
        },
! D* i% m, S3 l, b9 F. D7 e};5 B2 \2 w! X) [0 v

! v# A/ P. |2 E0 h% ~static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
; L$ M7 [0 S5 y- r* s5 P        .leds = da850_evm_tl_leds,$ I/ u# |+ w" a. |
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),* o" \, G( b& {2 L( [% m
};
: d! ?# d6 U1 }( b" ~- ?! w4 ?) t4 f
( q* p8 \  D/ h+ B3 estatic void led_dev_release(struct device *dev)2 j* w* {2 e+ V  e( ]; _& r
{8 {, x! C' K& f6 N0 T3 X( q
};
! a! G  h/ u" X2 C, d* ~; o8 [5 e  z0 W; F8 r8 ]
static struct platform_device da850_evm_tl_leds_device = {* C5 O+ m; U7 u/ B7 P
        .name                = "leds-gpio",
* p3 t3 e9 d/ R# T! @3 v        .id                = 1,
2 _7 c; c1 j2 D! a$ K6 f        .dev = {' X. r# ]/ o* C. Z. m
                .platform_data = &da850_evm_tl_leds_pdata,
, B7 b1 J9 d. W: ^; l  b                .release = led_dev_release,/ J4 m$ m+ z' y* P$ m' O/ V
        }, l- o; d7 {' d6 L
};& `  r& ], `9 b& N! ?- m

1 r6 b) q7 D; Lstatic int __init led_platform_init(void)
+ u: J, p' z( y0 y# S' O{1 v' o0 t/ l! e5 f
        int ret;
, F8 m6 l6 S  T  [% Z# R9 f" q$ _#if 0' V1 a! b) O5 a* f( ]
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
# A  u) O* R7 j& n& V* O        if (ret)
  z+ u5 r- f( \                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" h- p( P3 Z" W" ]                                "%d\n", ret);0 L( S" i; q5 z. f/ w
#endif, {9 K; t/ Q1 l6 }1 o
        ret = platform_device_register(&da850_evm_tl_leds_device);
- o; K8 _4 v8 v2 P        if (ret)
7 O; Z9 s2 R+ D" T4 a- C: G0 X                pr_warning("Could not register som GPIO expander LEDS");
4 g( q! S/ j) K        else: F) _$ C5 Y( Y; x" I5 |  c
                printk(KERN_INFO "LED register sucessful!\n");; l* E# l+ B$ n' L) ^  r0 k7 R
& [6 }+ t& e8 h+ L
        return ret;
; R! g$ ~# Y: K! j! l9 ^+ F}" l) k2 g7 G2 G; |6 R& w
/ P' u4 J( h! S0 _/ J
static void __exit led_platform_exit(void)3 e& v6 i* |8 a7 m9 Q* H4 o; y
{+ @' K1 v# s4 n' b& \% g: j
        platform_device_unregister(&da850_evm_tl_leds_device);4 r" i) ?1 I8 ]0 f. j) h: ]/ _
. n3 f! |+ ^9 }- f7 L2 m
        printk(KERN_INFO "LED unregister!\n");
* v4 ?, H" m& ^0 n2 q6 O}
" B9 b' \0 H8 h6 r# r; B5 A8 O: N3 T5 h8 n
module_init(led_platform_init);
3 l( d' u$ n# Rmodule_exit(led_platform_exit);5 i$ w- {+ x0 U/ ?! f7 A  V% ~

! |2 B- w7 B- d+ J( l& S, mMODULE_DESCRIPTION("Led platform driver");: M) O2 }! Y7 C  C: M9 Z, h* v
MODULE_AUTHOR("Tronlong");& k+ r. h( O7 @1 W/ X
MODULE_LICENSE("GPL");
9 L. X8 C  ]. v' {& Y
& i! R1 e) y- C) H9 w( y* B, O' t8 V
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-28 20:01 , Processed in 0.039605 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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