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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
8 J% i, s" h7 w: K2 \6 A; E9 o- q) y#include <linux/init.h>
& t( ]$ g, d. ^7 Q& v! n2 k9 h#include <linux/module.h>0 w% |( b# T# {& D
#include <linux/kernel.h>9 I% Y- l) z6 x  _
#include <linux/types.h>
$ a7 A; r% C- |  R+ i. J#include <linux/gpio.h>
; d$ o( K  h: G& ]#include <linux/leds.h>
4 p7 r. j$ ?, V7 d3 E. N8 z#include <linux/platform_device.h>3 x3 J/ D5 j& ~9 R! W- g

1 z  W+ b6 }2 F, t) X' G0 W#include <asm/mach-types.h>  w2 ?+ V. U8 ?: K9 U
#include <asm/mach/arch.h>
, r7 C# R) H3 f4 n#include <mach/da8xx.h>
1 T- }, m8 t4 `: _8 Q#include <mach/mux.h>
" g7 v" m% G% U
7 v) a3 E# y/ K( r#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) z1 u0 W' Y) p#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)/ g5 v, e4 R3 R0 w! Y9 j8 b
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)7 i+ `; z0 z4 ]4 S
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
* [( D4 ~9 G2 ^, x8 y5 ]7 N3 K" s/ A* L. m! `5 L
/* assign the tl som board LED-GPIOs*/$ M/ b. H( y8 B2 M
static const short da850_evm_tl_user_led_pins[] = {
4 H; `# Y6 ?# E6 Q/ x        /* These pins are definition at <mach/mux.h> file */
. C) E  H, K+ z# r8 b        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, I* |+ ?8 ^) F) J* }8 @5 I0 Z: C        -14 n$ e# [3 [9 D* o
};! n$ i! ]6 Q: u1 D+ e$ p
3 O3 \7 [$ o+ l# E. k/ ?5 w3 g1 ^) R" G
static struct gpio_led da850_evm_tl_leds[] = {4 U4 h7 w* Q: h  m7 |
        {
" k& r9 E; Z" B4 [7 l                .active_low = 0,
0 o& N7 o* X9 h+ Q1 Y                .gpio = DA850_USER_LED0,' }5 i; u/ P/ O' p, [
                .name = "user_led0",
' \) t+ X# ?9 M0 m                .default_trigger = "default-on",+ j0 L4 I0 u0 Y# M% f+ A* H  V
        },
$ P+ |% s, r3 d* _! N: V        {% P% b, V. A: C
                .active_low = 0,* q/ T. c3 T! i6 H
                .gpio = DA850_USER_LED1,
5 Y7 p  E! U; H& G$ @" |                .name = "user_led1",
( B. I! Q. b/ v8 X: B" x1 i                .default_trigger = "default-on",) y( n1 n. E3 F; G0 Q
        },$ F9 F9 p( b4 b( K( M
        {
1 u  ?1 b5 p, Z. @* A                .active_low = 0,& b# E. W! J* Y5 o& V: U+ w
                .gpio = DA850_USER_LED2,( K0 K" o" x' b+ _8 E* X* P$ y+ z
                .name = "user_led2",5 O9 `* \  h5 g4 l* x" x
                .default_trigger = "default-on",0 z' [* f% J4 I+ X
        },
/ j" [8 x! q9 `" a, y8 u9 ?: T( B        {( \% ]$ w: n/ T8 _
                .active_low = 0,
% y' v7 V! P  w* w                .gpio = DA850_USER_LED3,; j$ l* E. H& W4 ]3 x5 z/ w
                .name = "user_led3",
: ?5 d8 w1 n/ a# O0 t' `                .default_trigger = "default-on",+ L5 k% p; A' \2 C
        },+ Y3 D! P) i* V( x
};
, _- h2 {3 t, i4 ^/ Q$ Q6 N2 l8 c7 S0 w9 B. Y
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ }! K& L, l0 k8 A
        .leds = da850_evm_tl_leds,& R- d% B, d: ]+ u' L. V( P, V3 L
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- }4 M) w+ n) a* d
};* V& ?# D  u$ i3 s6 `4 O

1 a6 Q5 ]7 w! B2 y1 B- Hstatic void led_dev_release(struct device *dev)
  \  [% g" Z$ s( D7 R- A: ~{
. d1 D, F( x& k1 j) S};" _- h# G! A- z
7 A6 H2 _! k, z1 l6 g: g
static struct platform_device da850_evm_tl_leds_device = {
* h  f4 I) D% x        .name                = "leds-gpio",7 P# B7 D- E0 }
        .id                = 1,. {2 G- D' N4 q9 R6 H" y* M4 I7 K
        .dev = {* s& B( Z/ k( X7 P: G; ~! Z
                .platform_data = &da850_evm_tl_leds_pdata,/ d6 v- g- q9 x$ l- g
                .release = led_dev_release,6 V7 i# }/ p  A3 E5 u! @7 @
        }9 a4 D) B( J3 S6 S
};9 r0 d" a5 X5 ~( R& R- V4 Y  I
$ [/ N: N) B( _
static int __init led_platform_init(void)
7 z4 I: Q$ O4 e% q{
' W& S/ Q" [# ~1 }1 z& q2 M        int ret;
7 q- g3 A9 r# B" |#if 0
+ R) H. W3 x, ~. q4 ]        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; Q, [7 Z) U' v+ Y5 V        if (ret)! _$ R9 q0 D5 R. ^. h" Q
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 i0 G* j- G$ A- r' k' y
                                "%d\n", ret);8 X' ~; J' r8 h4 v
#endif
& j6 w5 ^9 h8 A) H% {        ret = platform_device_register(&da850_evm_tl_leds_device);+ c( S8 `$ I* h$ c% x4 ~3 u2 ]  @. X
        if (ret)( T0 h6 ]% l) e3 S1 [
                pr_warning("Could not register som GPIO expander LEDS");
9 _- i, J3 E2 |- u) ]        else* z# ~$ q  G! _! F- W: B
                printk(KERN_INFO "LED register sucessful!\n");3 q) E  S: V3 M( B8 N

& P7 E' K2 y) u' l2 E+ o        return ret;
, i8 |. p) u! @5 o}) e" G* D/ Z4 o" l# s& b; d. d

! r9 u9 C* b5 ]1 Fstatic void __exit led_platform_exit(void)" b7 E( L) w3 E6 K! H
{
1 \7 I0 r" t- T        platform_device_unregister(&da850_evm_tl_leds_device);: o( O) E; y3 q" |

) {* K- C7 e( m- z. O4 f3 }( v" i        printk(KERN_INFO "LED unregister!\n");
' B: R& B# x+ Q* }' n! r}3 l( B7 H0 f5 @5 X' s; H
2 n1 Q$ _3 I9 p! g& |
module_init(led_platform_init);
; R; `  @, x( i& rmodule_exit(led_platform_exit);
0 |: U" f- O& G" u( |  P0 A& G
9 d7 L# @2 M/ U& h* mMODULE_DESCRIPTION("Led platform driver");: @7 w6 ?( @& a1 l
MODULE_AUTHOR("Tronlong");
! ]1 Z( N# p' x) ?4 `+ ^% Q% o5 _MODULE_LICENSE("GPL");, _( e; C6 o% O$ X
9 I5 Q9 B" i# e: t
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-10 17:08 , Processed in 0.040067 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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