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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
, a- x6 ?+ b# w, Q+ K#include <linux/init.h>/ W3 n8 O- G6 V6 {6 b
#include <linux/module.h>& H' i7 m- C- |3 o0 M4 [! b3 c$ C
#include <linux/kernel.h>; y% q# k, L) K0 K! I
#include <linux/types.h>
, s. v5 h' B/ v% @# f" D' s#include <linux/gpio.h>
' V- W+ z1 f) a8 m: `% T$ m* e#include <linux/leds.h>
' R+ L- M7 K4 W+ g& Q#include <linux/platform_device.h># b" J( ~4 T, [
' N+ b4 q- g( g/ V9 w. z
#include <asm/mach-types.h>* |5 a9 b# ?; @& _0 y2 W( ]- p0 j
#include <asm/mach/arch.h>* }9 \6 P9 u7 y- r8 Q/ L
#include <mach/da8xx.h>% g! n7 r. Y" g$ C* N8 W
#include <mach/mux.h>) f" L2 ], M' A+ B

1 g2 x$ d; C% d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)1 S1 ^$ z( O8 ~
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)9 m- ~# Z: R/ S
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
- I' Y& I0 u$ X' w) L7 M#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)' `$ |  d, o% w! X6 O, r* |
$ Z6 H- P. D7 v; Z) Q; t
/* assign the tl som board LED-GPIOs*/
& H- w  P- |8 g$ G- nstatic const short da850_evm_tl_user_led_pins[] = {
. `6 O2 I2 r1 |; E        /* These pins are definition at <mach/mux.h> file */  K" ^+ Q' N4 f0 x
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
, t8 ^% R! i, B        -1
' v2 \: F6 q" ]8 X- Q};! t' u# y+ ]- E/ g

  D% T% P+ i4 I% ?* ^8 Lstatic struct gpio_led da850_evm_tl_leds[] = {5 u/ N7 W' e8 m% E6 k5 d
        {
$ A. a$ `& S. a3 y$ L: b                .active_low = 0,
2 J" E. \- j# n  F8 d( j( S, l                .gpio = DA850_USER_LED0,
9 }( O6 P" D+ t6 `3 m. s0 L                .name = "user_led0",. z" X" g  r; |/ J* `
                .default_trigger = "default-on",5 z! x# B  u1 W
        },
- Y! J+ R9 U" p1 f2 u( g        {
, |, N2 [, o0 M* W% F                .active_low = 0,4 E, J* M9 L$ V5 Q
                .gpio = DA850_USER_LED1,, D) c9 W0 i) {# T1 j5 c& S
                .name = "user_led1",
9 U: n# n+ U9 N/ O7 a                .default_trigger = "default-on",
& L( Y# M1 n0 J1 L: }; j: n        },/ m( s- a: ~4 D/ ?* w/ a5 y  c
        {
3 K5 a- O5 Z1 @& Q' w" P! Q2 m                .active_low = 0,2 W! ]. k. B4 b! W2 `/ Y
                .gpio = DA850_USER_LED2,; i+ v) c7 Q4 M4 R+ m
                .name = "user_led2",8 J& \2 p2 U+ p
                .default_trigger = "default-on",# q5 e7 _& T! t2 W' R( d2 c
        },4 Z5 s1 W# }$ N, M1 Q2 R
        {, z5 ]* |! J! ?
                .active_low = 0,; Q/ p( K# H6 L$ k2 V7 G" L0 O% W
                .gpio = DA850_USER_LED3,
% s. y4 c, n' u9 A* O0 d                .name = "user_led3",1 S0 d& B9 `- d- w
                .default_trigger = "default-on",
: G1 a9 A2 Y9 S& c$ ]" b. Q        },, a0 _' m* o. F
};
( ~8 ]3 q5 l4 U5 S) g1 T% \6 i/ J  I4 F3 z9 f( X1 F8 t2 C
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {* d& D3 p/ y$ r  I5 x* R
        .leds = da850_evm_tl_leds,
9 W, j# H* s6 L9 U5 i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* u- z. o0 m( v1 f7 L};' c2 Z$ d, \8 v1 I! H

" }* o. ?2 t6 g  x4 e/ ostatic void led_dev_release(struct device *dev)
! g6 t9 m# h6 _  E{: t) ]5 x2 u0 o9 _, G1 P
};: Y6 w9 r; Z5 l! Y9 K4 ?

. L" g7 @2 J* }5 Rstatic struct platform_device da850_evm_tl_leds_device = {
& ?' q7 b) V, E        .name                = "leds-gpio",, P9 z7 r6 V* n/ i
        .id                = 1,
& Z! Q& g1 n; u, }        .dev = {) t6 i- y* f1 V' B
                .platform_data = &da850_evm_tl_leds_pdata,& v9 m- |. Z( S6 v2 K
                .release = led_dev_release,
3 Y" i5 a2 s. y: K        }
" q! G3 d4 w- q9 F. J};- G: l8 u5 J0 C: \# u1 u0 x

# |$ t( p: {: f6 Q) P* T0 s/ H5 o; ystatic int __init led_platform_init(void)
1 ~/ T& ?8 u7 l; t{7 b- q% m* j# v( r+ V* l+ }
        int ret;; V$ o. d1 l+ ]$ y1 i  G
#if 0
' n/ q  k1 |$ o% N# ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
. B9 t* q% A, Y* P' t        if (ret)
- A% u' o1 t" _3 L                pr_warning("da850_evm_tl_leds_init : User LED mux failed :": J7 q4 ]" j! T5 u& ?
                                "%d\n", ret);
- O* W& ?/ Z+ |( J' A- _#endif
/ p6 G8 t# b. K9 f, q, D/ J        ret = platform_device_register(&da850_evm_tl_leds_device);
. w; y& C5 s& }        if (ret)
, a- ?+ M" F+ G                pr_warning("Could not register som GPIO expander LEDS");! i/ w8 w6 X7 i% U5 y# i5 e
        else- _5 r, d' r" O1 q' r0 S9 B6 h7 u
                printk(KERN_INFO "LED register sucessful!\n");( c3 r& p+ J8 o

+ Z. k7 j9 S" @0 y) v; r* i        return ret;; d* v) Q6 Y0 k) C6 K1 V5 D
}
; H' q3 D. K" j- ]
- u3 |( S" p) A: J/ g3 Z( ~static void __exit led_platform_exit(void)
, o$ w& d7 ~  w- @' l" V0 V9 w{3 z' P4 I) q6 q7 Y" Y  j6 t6 N- D( Z
        platform_device_unregister(&da850_evm_tl_leds_device);
4 B0 |! ~$ \6 k1 p) N
# P7 A: \# p6 x/ a. \" b        printk(KERN_INFO "LED unregister!\n");
5 M1 }& M) _0 Y}$ S9 `6 F, d: k5 D8 a1 R
1 ?4 z# Z1 ]- n
module_init(led_platform_init);2 q4 F5 [; h# y7 V
module_exit(led_platform_exit);
& l9 c7 Q' I  H, s2 I7 z9 v3 i7 h, f5 E- F
MODULE_DESCRIPTION("Led platform driver");* ~' i& E5 |/ }! j& H) G: T
MODULE_AUTHOR("Tronlong");! z5 X: s4 s" i
MODULE_LICENSE("GPL");
& x; M9 K0 G5 d3 ~) V  Q* Z7 I2 ?/ L; m# s5 Z; |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-8-6 03:39 , Processed in 0.049326 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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