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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 @% _: y8 _* T8 l/ `#include <linux/init.h>
8 o0 u: E, ]8 e$ i  p#include <linux/module.h>. Q- V$ q- K1 m& |' Y. C
#include <linux/kernel.h>
( h1 v) T7 `: {& J+ i+ J#include <linux/types.h>* L0 X: c1 T% H. v# {1 W% j6 {
#include <linux/gpio.h>
( s, H5 e# s7 F: S1 ]. \#include <linux/leds.h>: T0 q9 M7 N' i  F- h2 O
#include <linux/platform_device.h>
/ L2 _: [% W0 w9 S7 a, f; y
$ e9 ?; O5 f! h#include <asm/mach-types.h>
  Q6 J. a6 k% Z5 H  g#include <asm/mach/arch.h>; q7 u, x. g0 ^3 X0 N3 ]: d9 ]7 N
#include <mach/da8xx.h>6 k- N( \" F4 x) n' n8 I
#include <mach/mux.h>2 o. H9 H2 M+ }: M: K( ~$ ~. A

( m5 R. F: m+ n1 s' N4 O+ n& F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0). x8 t4 [* }/ p- h4 j. c% P$ t
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
+ {/ z1 M+ L1 z! h% w#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). i! j  Y3 |  a$ V) @
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
  r' p: @% e! U% P# F; Y: s' h" v7 y' \2 ?  _
/* assign the tl som board LED-GPIOs*/. \- N& ~$ W5 r
static const short da850_evm_tl_user_led_pins[] = {+ [5 e( a6 K# p  u0 e& U8 Y
        /* These pins are definition at <mach/mux.h> file */0 V5 X- c" X* J7 p+ J
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 C5 Z; k9 y# C- j/ g- c$ t( F
        -1
! r) C4 M% D  z( C};
  }) J- ~# M% v- L! ]/ M8 Y' i8 Z- w, f7 T3 m
static struct gpio_led da850_evm_tl_leds[] = {6 K- o2 K; ~4 ], t  g# P- t
        {
7 }* S# \8 k  ?9 d                .active_low = 0,
' m# N( R/ a& D( r$ L                .gpio = DA850_USER_LED0,
' p* u9 u; V3 p( y                .name = "user_led0",, S" [  _$ g- B% W1 v
                .default_trigger = "default-on",) i: v) c. l* }- K
        },! `' B9 ^2 k8 N: Y0 g, N
        {; p; o0 x0 V6 V( O
                .active_low = 0,% I( T. O0 O0 m. E; H$ t
                .gpio = DA850_USER_LED1,$ X! _  ^$ I3 m- h7 F, u$ `
                .name = "user_led1",
5 s$ T6 E" d' U0 m3 h$ p                .default_trigger = "default-on",0 S1 X% S, i4 }
        },! B+ [6 j& D% c
        {
2 Y0 {* J0 T( F                .active_low = 0,1 u8 x) |& c# Q
                .gpio = DA850_USER_LED2,
7 i2 ]) |/ p7 B6 Q7 X; K- e9 A' v& _9 d                .name = "user_led2",+ `! t# X3 Q  I
                .default_trigger = "default-on",
& F2 Q3 \0 L4 i( _& i+ j9 @- P- D        },- k5 e3 B" @! s7 v
        {0 f# B5 N) l# s4 a- G& }
                .active_low = 0,
. V1 u3 D/ q5 a2 V: H  c3 I2 H5 g                .gpio = DA850_USER_LED3,
0 @. {  g2 j2 w+ q! E+ q/ g  X& y                .name = "user_led3",& ]+ i8 Y& y: R- T9 j% I  n' K
                .default_trigger = "default-on",
; o/ N5 r$ u) K! h% _: g        },# Q  A2 O1 X$ u
};- R0 e9 ~5 U# t  T

! k$ u$ o! l2 Z7 \3 v# fstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ A& {1 P  K- r2 C  l  ^
        .leds = da850_evm_tl_leds,
& e9 [- t6 l$ ^        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),0 U9 u& G! ?. W, `* k; z
};
' [/ ?; u8 l4 [2 R/ R" l
1 \" w/ L& q5 ?; K& `, Jstatic void led_dev_release(struct device *dev)+ p: o5 ]8 A& a
{1 T+ Y$ v; y6 D6 |! P# V
};
4 h- @& Y1 a4 j  G% H1 @5 U- R% {
9 p6 ~& s; `( t9 Nstatic struct platform_device da850_evm_tl_leds_device = {, v: A- ^4 E% S5 g) j
        .name                = "leds-gpio",* `" [3 P) C. e3 m( F* _
        .id                = 1,) }4 K9 ?( M# ]' J6 ~
        .dev = {5 o- w# B2 Y! G5 [4 N0 ?
                .platform_data = &da850_evm_tl_leds_pdata,& d5 L2 H/ r- W
                .release = led_dev_release,
# _1 K' q5 z' v& ]4 r( P        }9 o, E9 Y: ]" s: B, Q4 g
};
7 w+ `5 \$ l. ?/ {) @, k& B5 u: {. q( p6 w  ~
static int __init led_platform_init(void)
8 C& P  w( T8 u3 Q! }{
  p' ]2 g- I& T2 e. A        int ret;: l4 t9 e1 F3 L. ]# o0 z
#if 0
2 Q- X, a+ V! p        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 Z& Z7 X' o; s; S( m* i9 \! J6 G* j        if (ret)  `3 F( o" h- {5 C% U3 j5 c( a
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
6 I( b1 I6 r: n% Z* R                                "%d\n", ret);6 P2 J! G! m. @0 h( O8 Y
#endif
9 Y2 N% z5 w: W+ o1 Z* f  y8 q        ret = platform_device_register(&da850_evm_tl_leds_device);
) w- {! w/ b+ H9 b4 U" m  o        if (ret)
6 u& G, y' x: ?: @/ n- y. T                pr_warning("Could not register som GPIO expander LEDS");
. F) I. _2 {3 Y0 W/ X3 ?! f  ~        else
. {9 w, k9 ], L' t9 x  k- [6 w                printk(KERN_INFO "LED register sucessful!\n");
) J$ x/ y* @6 ~+ t+ e% q5 H6 G2 j; s5 o
        return ret;
2 H3 N" `& B0 N}
2 t4 U4 V& u- N/ i, j) U4 j+ w# W6 N1 i) `  m9 y$ N% M; j
static void __exit led_platform_exit(void)
$ N* j! S% C; @- R% e2 \( v{
( d- O2 c: N6 f6 i" h        platform_device_unregister(&da850_evm_tl_leds_device);
# d3 Z) @/ U7 y+ v* h& R' W( u$ e2 X0 W: ^! y3 X2 T
        printk(KERN_INFO "LED unregister!\n");, ?, S3 H. \2 r+ D9 I' C& L3 h
}1 l" Q8 H2 l: t  G- ]* p

- ^6 I8 P8 [$ P* W% ?7 `2 Y1 }module_init(led_platform_init);" J9 j5 R% c! o. Q; F
module_exit(led_platform_exit);
, I, [/ R- c' n% w2 z: S0 p( \+ B0 D+ G. c9 ~( ~
MODULE_DESCRIPTION("Led platform driver");/ E/ \9 g/ R/ ~2 A
MODULE_AUTHOR("Tronlong");
: r1 B' V' t. n$ p- t" pMODULE_LICENSE("GPL");* l7 b  R0 T0 ?- A; y4 G" h8 Z& H
# M! ?) x/ v* ~& ?" J! v+ G
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-27 05:14 , Processed in 0.041399 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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