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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ S9 [( N; o& |% M* r#include <linux/init.h>  I! @2 t! |# j/ E
#include <linux/module.h>+ B' t: z" Z9 Q2 a1 c; k
#include <linux/kernel.h>& N5 p/ O; f: v; k3 V0 O7 D
#include <linux/types.h>. R& d+ A* M! B  r  a9 ^
#include <linux/gpio.h>
1 D  Q2 M+ Y  E0 _& D, u#include <linux/leds.h>
% W/ f) T) _. J% \7 k' {3 _2 p5 X. L#include <linux/platform_device.h>
1 Y. _' n2 N; D. _7 u' [+ _2 }; R  {3 N  G# l, ?5 Q3 D
#include <asm/mach-types.h>
% S  Q- c- }2 r8 c; h. Q8 y) P#include <asm/mach/arch.h>4 P: t, n# R# Z4 b
#include <mach/da8xx.h>1 P" K& Q) o( v+ r! M. R
#include <mach/mux.h>4 N6 o/ a$ T* n% ]

; o, {2 t/ H0 Q9 Y: M, I1 Z. @% S#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
- x' M) q9 J  U3 t/ E% V#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
5 f2 W" x8 G/ `6 Z3 P#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
' R! [' ]! O1 D% n#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
+ u% {4 h# B: j
* S$ g  H1 j# X$ n' P/* assign the tl som board LED-GPIOs*/0 H% \- j# N4 |% h: o# o3 r6 Q) r( G( F
static const short da850_evm_tl_user_led_pins[] = {/ k( g- E" p- u" ^8 h
        /* These pins are definition at <mach/mux.h> file */+ w0 _! w) c; V5 c7 Z" j* `
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" P3 ~& v0 N# ]. m        -1
2 I' ?" J+ d: D! E' E, d};
7 a" O, f/ U( H& v8 H" a7 i/ n' E
3 O  t$ {: Q& N/ t$ Kstatic struct gpio_led da850_evm_tl_leds[] = {
1 h6 F" n/ l1 Y% B% L* x        {
* R% I3 H4 S% k8 A9 c$ k                .active_low = 0,
4 m' T9 t7 X3 ^2 F                .gpio = DA850_USER_LED0,
/ Y0 [/ a% N) L7 N                .name = "user_led0",
) S! I0 S. X3 d7 J! ]6 @. Z                .default_trigger = "default-on",
( O2 E5 W+ L: v; Y& B  x3 b( F        },3 X% r9 ?; H4 Q
        {* i- p4 }7 L0 @! w1 [7 b% r. T
                .active_low = 0,
' ]" k$ |, `: q0 A# a% |+ _                .gpio = DA850_USER_LED1,
  r- N# M7 p) Q8 x4 b/ b. a                .name = "user_led1",
% O5 M1 h& ^  V- }: D0 p# m                .default_trigger = "default-on",
' a7 x; s& Y: U7 u" x8 m  z# A        }," f7 d9 Z4 p1 X2 R" P0 q- Z
        {. S- b9 g/ w- p$ }
                .active_low = 0,1 }) T# C2 y: G7 p: W) T
                .gpio = DA850_USER_LED2,% f) E( b, Z/ W1 M6 k9 w/ t2 }
                .name = "user_led2",1 M( Y+ u8 g6 d$ Y
                .default_trigger = "default-on",9 n; C: v6 M0 d: I* m* x
        },. _! E7 `- j' G: N* X8 @/ d
        {
0 ~6 B. x5 @8 n" d2 j" `                .active_low = 0,# R% b- P- y; z- b% n* d8 x
                .gpio = DA850_USER_LED3,
' a/ B5 t" W- ~: d1 C                .name = "user_led3",
1 d) [* M$ E' X* @4 d                .default_trigger = "default-on",
! H% W3 O% `1 {" U% L  K* i        }," e) p3 `3 R( O( X
};4 U3 C, e0 |: J1 u. u
$ H. _5 I) d7 n* e
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
5 F3 \# v4 B; ]$ [        .leds = da850_evm_tl_leds,# R4 g1 v9 _& K+ C
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 z: o. `) t1 ~  O
};
' I% X7 w6 _6 U! Q; u' L) W9 e/ L* k3 ~7 e6 d, L
static void led_dev_release(struct device *dev)+ O& y, K- {8 s! T6 h5 u9 o
{( _8 W0 H* N- Q/ s: `/ o* m1 c$ j- o
};6 V6 l% Q) A. t8 |; O
) ?) h& D$ i( K  Z
static struct platform_device da850_evm_tl_leds_device = {
' O& @4 F, i8 T4 O* u        .name                = "leds-gpio",
. D& h6 `, E, m9 W) f8 h        .id                = 1,
- r! k/ r* y# M! ~# j        .dev = {
5 T" k5 v$ R: ~$ e9 d8 Y( y# t                .platform_data = &da850_evm_tl_leds_pdata,
* n. p# g+ I- g2 B3 e                .release = led_dev_release,+ K! x0 j9 a9 D7 D# E0 e
        }/ d  \7 n' c! k1 b
};9 d* K" D( c) ]0 Q. O9 I
/ r# B1 p* `/ t) k2 U2 E. ]
static int __init led_platform_init(void)' C) e) o8 m4 P" m, M
{
# \4 \; i- m: \/ a        int ret;
8 O" [, ~, ?% d/ e0 I+ B#if 0
5 D7 }& n3 F- h8 a3 i        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);6 C0 W1 ~( X4 v7 Y# o# j) E
        if (ret)
7 Y) p5 p8 m2 z) W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( L/ V6 b) i- \/ e5 l4 C! p  U                                "%d\n", ret);) A: K8 F- M0 ?; u. q
#endif
& `( }' Y8 E5 y9 R: a  E% C5 M        ret = platform_device_register(&da850_evm_tl_leds_device);0 j% Q8 {+ u: o
        if (ret)7 R* O" K# Z) {  k
                pr_warning("Could not register som GPIO expander LEDS");; E+ l, i: T; K/ c( C/ `' p! c
        else7 S/ b+ F6 ?! D) |2 v
                printk(KERN_INFO "LED register sucessful!\n");
$ q# W3 \- u( z
6 |5 y% B' W5 y        return ret;
$ x7 [" b: |. }% E3 y}
2 ~* z. j7 X+ u2 [5 g& u! t
, ^8 W$ E' e: f: Pstatic void __exit led_platform_exit(void)
, [7 w" P. |# J- w2 G{/ ?+ _1 e, o$ X6 r+ }
        platform_device_unregister(&da850_evm_tl_leds_device);! @" z# b0 d7 P2 M) o9 o

3 o6 ?6 ~5 [3 l3 d5 e6 d/ b        printk(KERN_INFO "LED unregister!\n");
* W' {: M* z! z9 v; f9 m; X0 y}/ D7 B- A. `4 j5 q
. B& `. z+ w8 Z' T3 @5 q: G
module_init(led_platform_init);3 `+ E0 M. O3 e( j
module_exit(led_platform_exit);
' [9 I+ D4 F' Z3 E% d. v1 R' \  z% v: T5 \5 B! f
MODULE_DESCRIPTION("Led platform driver");. q2 l4 |8 p9 V
MODULE_AUTHOR("Tronlong");( M3 h' y8 |% B/ F8 s( B
MODULE_LICENSE("GPL");
9 _" s3 s" a- {4 @+ e" B0 f0 c) ?& `! o( ?& D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-3-2 01:13 , Processed in 0.039299 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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