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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。1 q! B  A7 P0 `+ H8 y* n: I4 v
#include <linux/init.h>
" o  G* c. I) N3 X9 ]#include <linux/module.h>
$ [* V, `* Y9 N, m; G& i0 m' o! _#include <linux/kernel.h>
# X7 c& V& {3 u+ N: @9 `#include <linux/types.h>
% P, z, K- O* x+ X  s9 k% B) K' A#include <linux/gpio.h>
7 |) P3 Z* h+ P( \' b6 Y: p#include <linux/leds.h>8 d0 q; M9 L" e5 ^: K9 Q4 x; N" ?% n
#include <linux/platform_device.h>9 l/ u* d& l& Q" j, j

' ^0 G9 ^  o- q- a1 {1 P#include <asm/mach-types.h>8 B( [0 i, M7 |4 ]7 C+ V
#include <asm/mach/arch.h>; O* Y7 z1 j5 T/ n- S  r' H
#include <mach/da8xx.h>' h/ e1 Q& ~7 n$ E! I: X+ ?
#include <mach/mux.h>8 g  d! O* ^2 U' x* U& E
4 ~+ s) R# ?6 ^+ g' U
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
0 {( r  W7 t  w7 s% D  E& j#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
9 T9 @7 }0 u! y; s5 Q* g#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 r% `! U% J- Q) }* p- _% E
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
8 l8 H. Z% N3 e+ F( c4 i
( U2 o: ]& ?( r; t/* assign the tl som board LED-GPIOs*/
& n; Z- M' L' ]7 i0 }/ O& Y: Nstatic const short da850_evm_tl_user_led_pins[] = {
7 V8 ~8 B" `; _# v        /* These pins are definition at <mach/mux.h> file */: D) T3 v' n! X9 I
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,+ [" k+ ?4 V; I2 b/ d3 f' b  k& c. t- I
        -1. D3 E) z7 B; ^1 K4 N
};
3 K7 E# k" N$ q6 u$ _# o* g, `  C; a/ ?8 w( X$ H
static struct gpio_led da850_evm_tl_leds[] = {
/ Q3 W7 m) L$ H3 o! x        {& t* @) l1 s, |5 z& d3 Y) q
                .active_low = 0,
! K5 H8 Y7 F0 o% `! ]                .gpio = DA850_USER_LED0,4 j( L5 E4 \" r' G# R0 M
                .name = "user_led0",
! v0 `& W8 J+ O: t                .default_trigger = "default-on",
& [4 e$ |* J( I  r( ]3 t% t' l        },0 v; ?4 h% X. \; e6 u6 u/ S9 D
        {
6 ^0 o2 f9 Q( Q                .active_low = 0,/ p4 I+ W, y2 T. k- G' B
                .gpio = DA850_USER_LED1,
; H3 b4 y( F3 A; ^( j" T% w6 ~                .name = "user_led1",
" B2 }% ~9 @( y/ Y( p$ |& i$ Y                .default_trigger = "default-on",
$ z' g. c+ E/ j        },
& l( Y7 S' c" u, L* B. e4 y' z        {
' i. j# d( r$ Q6 h* r                .active_low = 0,+ o8 A! c- x3 W5 J! G+ O
                .gpio = DA850_USER_LED2,& w* Y  L' }5 |/ U7 Y
                .name = "user_led2",
4 c' p4 u& z+ J- B( H8 o                .default_trigger = "default-on",, Q4 W: s6 }3 W0 }6 g
        },
5 Q2 D6 R$ [9 R4 W        {
- J/ C# z; `5 s/ Q, c                .active_low = 0,+ w. @2 _' }* _% _( h
                .gpio = DA850_USER_LED3,
. ^- b* ]3 L& B% [* Z$ ~9 a. q8 U                .name = "user_led3",
3 f( S- F' T1 ^+ P) d3 Y% w$ \                .default_trigger = "default-on",
& b2 m! G- I+ B, T, c+ Q& Q        },! i) T7 y, o$ s2 j
};
" |1 I# F3 A9 V' t/ T3 `% C0 U% y- b/ \2 `! a5 E' Q6 Z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
+ i6 `+ K1 }% r        .leds = da850_evm_tl_leds,
6 q# {9 r: d; ~        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( P; \8 |  l# v6 V};
5 ?( Z$ c1 M  t% _1 o8 t  t: o/ m
static void led_dev_release(struct device *dev)
1 v/ E( ]& z/ m) @6 Q{
7 }# Z4 Q. g6 I+ y7 Y};7 X7 C/ [% p2 A; u- c1 j

; N! H! H- o* g8 {static struct platform_device da850_evm_tl_leds_device = {
! v5 D) }6 f% _( A% ~4 z( M        .name                = "leds-gpio",- O9 R& w3 G7 i, R' j5 l% Z
        .id                = 1,
( u. \" {6 {- K2 B8 F: S        .dev = {
+ e* K9 ^/ K+ _0 m                .platform_data = &da850_evm_tl_leds_pdata,* J! t; {' y( `7 ]) S# s7 c% R  i
                .release = led_dev_release,% C: u+ o2 W# m/ T$ K/ m& B
        }
. Q* l; C6 N: P};
2 U% K' |. `& d, y- m3 F! ^$ D( f( l2 L6 r# m3 }  v6 w/ `" P; {
static int __init led_platform_init(void)
  R1 q' w* }, U6 k{% d" h. W! k4 d. |* y$ x+ E7 \
        int ret;
2 l/ C1 s9 C# b) j7 d$ Z/ _6 O1 y#if 0$ x) ^+ E4 E- Z' H8 c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);3 K! d  B; [/ a
        if (ret)
1 q/ F3 u1 O: C5 H$ b0 T                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
( ?* V) ~# C% D- _8 D                                "%d\n", ret);
1 r4 x% q+ ~1 S# g) F0 V" Z2 w#endif
& F$ J5 k  c. j8 O1 a/ R4 Q  l        ret = platform_device_register(&da850_evm_tl_leds_device);  b2 M/ O. r! ^  z7 W8 M1 P4 U
        if (ret)
) c% B; H' U! f9 s1 T8 `, G                pr_warning("Could not register som GPIO expander LEDS");8 [8 n0 z2 e5 c& j) k
        else3 R5 H5 F# a, P* \
                printk(KERN_INFO "LED register sucessful!\n");1 y$ g  r- L6 ], J% f  `

8 ^6 A" ]; m$ r+ r! r3 _        return ret;3 P8 Q% O4 y6 K# U6 X8 l+ X5 _
}
/ _0 N. N6 G/ w% p7 f. J, E+ O
0 p% b8 }. z; B8 I. ~static void __exit led_platform_exit(void)
2 o7 P& I7 l; n' I, J# N{
8 N2 t+ g( A4 c# m& L, f+ M        platform_device_unregister(&da850_evm_tl_leds_device);! }0 [& a5 w& u" {/ O$ v9 a

, c# \; Q$ J4 `# C        printk(KERN_INFO "LED unregister!\n");
$ s9 L) N) o, U4 i}! y) m" H" ], v" E3 Q: J+ [

5 K! R) S5 Y+ Nmodule_init(led_platform_init);
  I7 h( ~6 U9 Xmodule_exit(led_platform_exit);: y; s+ k8 W2 F. a  y' Y9 c. h2 Y

) d9 S( X/ V' V; k) Y% L. t, i. Y  h( qMODULE_DESCRIPTION("Led platform driver");9 z( t) `6 M$ @" b
MODULE_AUTHOR("Tronlong");: I) g: C7 k1 N! b
MODULE_LICENSE("GPL");
3 M8 F3 S) M8 H' @6 K2 p0 k: i2 ?& D  s! ?/ a
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-25 14:52 , Processed in 0.038676 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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