程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。0 U' u# K. s2 e, M4 C- ^5 u9 P& Q+ A
#include <linux/init.h>
2 M* V7 C6 Z; w2 p5 N7 V#include <linux/module.h>
( M3 f8 Y  X/ g# F5 Y5 _#include <linux/kernel.h>
( O0 I/ ?) U" Q4 X. ]#include <linux/types.h>5 w, N2 Q7 N% B
#include <linux/gpio.h>* I, H9 I3 t2 i9 s
#include <linux/leds.h>) L% _/ S, o4 R1 _' ~) c
#include <linux/platform_device.h>
. r. I# Q8 t# z. F8 e. _& K3 r) u4 C. w+ e0 u7 X/ H- f. ^
#include <asm/mach-types.h>
4 H& e# ]+ \$ J#include <asm/mach/arch.h>
" S- @, G) Z* A#include <mach/da8xx.h>
8 m! v: l" R' x! W$ U. }% V) ]/ [#include <mach/mux.h>% C% o, [" Z2 |# a$ Q
# Q( w2 ]  t2 t) M$ u! `4 O; R
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) t0 y% s/ c  D& ^; f4 T: X1 F# H#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
% R8 s8 `- B; X" m( W4 x8 j& c& f. Z#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
; Q: P: ~+ K0 x#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)9 J  r% l  @, R" K
7 }: M7 Z( K* i
/* assign the tl som board LED-GPIOs*/4 q8 L; {0 T, ~/ r2 d
static const short da850_evm_tl_user_led_pins[] = {5 d' M% X+ H. y; l* r( F
        /* These pins are definition at <mach/mux.h> file */
( y( D3 y. V; L' h+ j7 \        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,, H% q- J; J1 m
        -1; `0 c# I$ w% a0 N4 x, \7 j1 ^5 T
};
; V! K! X% P* n
% Q( k1 o! j. T; \6 X+ astatic struct gpio_led da850_evm_tl_leds[] = {+ v) B* r" f* y( \5 f
        {
$ l+ h, \# o7 O/ R                .active_low = 0,
) d" z8 D; T4 d# f                .gpio = DA850_USER_LED0,8 v9 f+ P& \0 i3 L" x
                .name = "user_led0",
6 r8 \8 Q% a  L3 b- s* _                .default_trigger = "default-on",5 h9 V7 b2 v9 O) U' L% R
        },
  z. l- _6 S- N( y6 \        {7 K& E4 c- t/ c8 E" j1 F
                .active_low = 0,1 P1 A& z! o' X9 G5 r5 b
                .gpio = DA850_USER_LED1,
3 W4 M$ ?; u! b                .name = "user_led1",8 R9 w% S  T: h% Q: \5 W* I" H
                .default_trigger = "default-on",
/ B$ Q: y8 u, \2 `/ D5 P5 M& p+ D3 y        },
! B% F- a* N1 _, C/ \+ G4 d& e. \        {
6 a/ N1 T) E1 p! a                .active_low = 0,, C1 f, s, i7 H0 u, ^
                .gpio = DA850_USER_LED2,
! N' f& \( J4 E% M$ @# S7 R) o) a! D                .name = "user_led2",9 \, q5 T3 L, B: f7 `
                .default_trigger = "default-on",
) i5 i) q! H$ `( E4 {- ?        },
1 o& ?: G4 l* G0 j4 Y' P        {
* J  w- t9 x7 z                .active_low = 0,8 K  y3 P8 F! D+ m7 K( k+ {
                .gpio = DA850_USER_LED3,* @  T9 C4 l8 [; \8 ?2 Z9 w
                .name = "user_led3",7 n7 z' ^: Z# b( Z0 z/ r) T# s& F1 y7 r
                .default_trigger = "default-on",
  R4 E( E- D- V$ ?: }5 n        },. s! P( @6 F5 K5 d9 D, L, A8 G
};0 T' F# q) a/ H

' }$ f, K1 H" V7 q  q, Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {0 S# X1 H. y2 q+ Y
        .leds = da850_evm_tl_leds,* U2 c) X2 N4 S5 t4 B3 K
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
3 N! A0 y  P) z' ^};9 {/ G0 \4 E0 V
& d6 E6 c2 D( e, o7 G9 `
static void led_dev_release(struct device *dev): S4 g) W4 F6 w$ c3 `% O0 @
{
( X' W! G5 P2 a$ p. h};6 X) B% E+ l/ a# @1 ]1 p
& a0 P) N/ L) \$ L6 X4 |
static struct platform_device da850_evm_tl_leds_device = {" o0 Q) n. |) ^9 f6 y1 V
        .name                = "leds-gpio",
* y) X" V* r% H( b2 r, A        .id                = 1,
! h, K) d7 I6 d        .dev = {; K- V5 W6 A# m1 Q& {, I2 {
                .platform_data = &da850_evm_tl_leds_pdata,# X3 `  q5 b& v
                .release = led_dev_release,
- {& `1 ]4 t8 z& I4 O: Y        }
+ p: ]6 {" ^$ k2 r! W1 B2 C- n};# r2 m8 d! k: ?: T" E: g8 w. @. @

$ g$ {* H4 ]" t+ a  Q8 Xstatic int __init led_platform_init(void)
/ B. R- D( I* c{
7 o8 a& `6 q  \- T! {; d' L        int ret;
$ }8 R7 I2 T6 I( G$ Q' t; [/ C6 \. M, O#if 01 }/ a* N5 s4 H' Z: B% e
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, ]. L9 D+ d4 N, s0 v0 |
        if (ret)) x1 A# S- D. ]; E7 A2 ?
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"; ~; T/ y' b# X  \1 L2 J' f8 C1 F: R
                                "%d\n", ret);# w8 V. v9 F" [0 D
#endif
' |( m. a0 b. M9 B' y        ret = platform_device_register(&da850_evm_tl_leds_device);- p6 \6 F+ `$ z
        if (ret)2 \+ o) J+ a3 W: \
                pr_warning("Could not register som GPIO expander LEDS");
7 L7 h( [' X# k. ?$ V! I. J        else3 H/ Q: i0 O! g3 N# J! `+ x. u# y
                printk(KERN_INFO "LED register sucessful!\n");
- G, c2 |# N! F8 I
: b1 i$ n% l" u' H8 }        return ret;
( a' r. P0 @5 r+ e6 _: R}& L& E' x9 k. n

0 r6 L9 M- q7 T' tstatic void __exit led_platform_exit(void)( _8 V, @" j$ q
{
* q7 w3 J1 }' Q% H) }+ O        platform_device_unregister(&da850_evm_tl_leds_device);/ i3 N; U! i$ D' m( C0 k

7 k0 \9 u* j. E* N$ u        printk(KERN_INFO "LED unregister!\n");
1 v5 A) t. N" V5 Y$ c! x}
* a. S' o7 \" c3 F6 O6 k0 C, k% |: |- d+ q* b
module_init(led_platform_init);3 l! y- a. T4 S# R/ y+ K/ Y
module_exit(led_platform_exit);
" k6 E) t4 }; c* j7 c  C
) L/ Y7 p1 {6 d% g8 M# d1 IMODULE_DESCRIPTION("Led platform driver");
5 z8 X& \# V2 l* }2 i6 l2 K2 nMODULE_AUTHOR("Tronlong");" `& _, K; ~* P8 ~+ ?. Z
MODULE_LICENSE("GPL");0 ^8 W0 r( ~' u6 o

6 R/ g3 A/ A. D2 a2 |
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-13 07:40 , Processed in 0.039617 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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