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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 e& G- a3 D0 F# u) D5 E: r' N#include <linux/init.h>
+ L5 o4 x: Y* g#include <linux/module.h>
/ f% l. X2 \5 s2 Q1 H; f#include <linux/kernel.h>6 }) L. P5 F! e. c- q0 o+ O5 W
#include <linux/types.h>
- \" R5 i2 z( o4 q#include <linux/gpio.h>( X! }( ^: G2 R  P  Z, R1 b
#include <linux/leds.h>
) W0 g1 m( s5 n. ~3 P  ^#include <linux/platform_device.h>
+ u2 r. B% J" ~2 B( u4 C' p( U1 h" j
#include <asm/mach-types.h>
6 T( s1 u. t+ z; K#include <asm/mach/arch.h>6 M! J5 M6 Q) n
#include <mach/da8xx.h>0 d9 d5 {0 a$ r- B  Y8 z, \' @
#include <mach/mux.h>
2 ], [* Y' D- J9 s5 }3 _
( X* [* Z: |4 D, h6 N#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
6 r. l* v" y% a5 `#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
$ n5 ~6 N: @6 y: q. I2 g: _#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)1 o4 W* _+ h$ n8 Y( t1 p
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
, }1 m2 ?/ h( ?) ^) K6 E5 \' A- w( J1 I' p. J
/* assign the tl som board LED-GPIOs*/
& Q! y0 e4 M  Y7 j1 vstatic const short da850_evm_tl_user_led_pins[] = {
) f8 v. q9 e# d  t* Z        /* These pins are definition at <mach/mux.h> file */
: A8 k% O4 h! r% B5 j( y, M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
# s$ N3 _+ P7 y% S4 u' U2 M        -1- Y( A# Z6 D# b% Y, J7 a3 G3 V
};
% J) }5 B) b9 y0 e0 ]) s7 E+ |0 t( p& n" o% g" z
static struct gpio_led da850_evm_tl_leds[] = {8 N" H8 t+ i: U0 m# F% ?0 W
        {
7 R) p  `3 ]7 Q+ L5 ~                .active_low = 0,
; d3 G+ Y/ T3 K$ z$ Q5 s, k1 Y                .gpio = DA850_USER_LED0,5 w" v5 C1 V- O: K
                .name = "user_led0"," X7 I) u( M% O4 t0 T
                .default_trigger = "default-on",8 O. z% U( `  Y# l2 E' v
        },
! h: k5 @1 R/ x8 r* \& _3 u( Q1 Y        {1 N, O# D  W9 b  F
                .active_low = 0,
6 m0 k, N! y$ l' X9 S                .gpio = DA850_USER_LED1,
0 I5 M7 a3 M9 N" o) [                .name = "user_led1",
4 A2 f& I4 X6 N                .default_trigger = "default-on",
2 Z9 l7 T8 G0 `  i+ K6 K  I        }," ]# Y3 T1 K$ ~$ }
        {
6 j, _9 w* t0 s/ r+ S7 O& E5 f                .active_low = 0,
3 o, N9 ~; y' u7 ^! W' v( J                .gpio = DA850_USER_LED2,( ?' b+ |# b% H6 I7 i, w7 v( ]! @
                .name = "user_led2",
6 o# P- U( w* R9 W2 h& Z                .default_trigger = "default-on",) |. J+ t# G. A9 }6 `
        },
& ]3 ~/ f; K4 x3 O! W        {
& Z9 @' V- Q2 z! g) ?3 Q                .active_low = 0,
* i4 L# n! a- Z. k                .gpio = DA850_USER_LED3,
# b9 e7 f% K0 _+ R+ x. M                .name = "user_led3",  Y) T$ U$ X( s4 I6 r  z; ~6 j
                .default_trigger = "default-on",; `, U, Z( I" K6 Y' _7 Y
        },
( i) l6 ^' G# `7 b) I) E};- p5 ^. ?5 x* @/ ]% L7 c

$ m( j' M! u/ L' U8 |! q# t% Ustatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
' `5 Q- s) m& h7 n: A0 d        .leds = da850_evm_tl_leds,2 A0 c1 W) q; M( m2 N% [
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),9 j# K9 X* d3 z- O
};# y, p8 x1 y5 s3 m; n4 m

- W* f% m- M: c: K8 ]/ Lstatic void led_dev_release(struct device *dev)' S7 `3 _: M  ^) S8 [0 k
{
% {# I8 s- q3 T5 K% Z3 x};# |" h2 l) g4 v

4 L8 q8 q) X; N5 H: s$ a9 I/ e- {) @static struct platform_device da850_evm_tl_leds_device = {! K5 j  S/ i$ Z7 |+ s
        .name                = "leds-gpio",, e/ h& z9 }9 \: [: z. O
        .id                = 1,4 I" m" C5 [6 E* z: r! H
        .dev = {3 X5 d, E8 J6 T! F; g2 C$ F
                .platform_data = &da850_evm_tl_leds_pdata,: k1 b5 ~) E3 k( H
                .release = led_dev_release,
0 L1 P, \# g9 k        }
/ R1 E1 j5 X% `6 d% p0 e# b- b};* y/ c6 m, Q) L, w2 M  s6 l
" v% U; q. g. F9 h8 r* K7 A+ i
static int __init led_platform_init(void)
; a' s( J. z1 I7 u9 t. U' Z/ q{0 b; Y3 Z4 N5 a6 n
        int ret;
7 C% ?% L' W- m& N3 g#if 0
' t8 c1 P' B2 ~8 ]" t        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);0 Z3 B( O8 W! |* e% r' a+ X
        if (ret)
7 `- n$ j* `: b% S1 Z' h                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"1 k. g. e  ~' ]  k: d
                                "%d\n", ret);
) q) d5 P) A3 p#endif
8 H2 {7 q3 H8 s' V. n$ x/ @7 @7 ]        ret = platform_device_register(&da850_evm_tl_leds_device);
( o1 ~) J0 O. q        if (ret)
$ ?4 S, A4 z7 b6 v* O# B$ z                pr_warning("Could not register som GPIO expander LEDS");
9 \8 Q8 Y& c' C. ~0 a: e        else+ \3 r  i- p+ J; K1 x
                printk(KERN_INFO "LED register sucessful!\n");, A3 h" u' K% |+ j9 k; S

' ]+ O7 t6 p" B% f1 m% W        return ret;8 |) p7 h+ A, L$ l! ~3 l1 f  o, v
}
& l* a9 E3 Y4 y* j- J( |0 Z  V% C. o) w
static void __exit led_platform_exit(void)
$ |* P; R/ ~$ e5 s- d9 S. s{5 J! f  P( X0 a# T
        platform_device_unregister(&da850_evm_tl_leds_device);
$ Z+ a1 f6 R' E& l9 C3 b
' N% w6 A6 m) z3 O% W        printk(KERN_INFO "LED unregister!\n");
$ \$ r* w" o- y. i/ v  u: F}; W- ?7 g( w# \3 b/ G; Q0 k

6 h/ H1 p  Z9 u6 G3 j) q. d& i* Rmodule_init(led_platform_init);/ X, g9 |5 w3 V; N: f4 D
module_exit(led_platform_exit);
% A0 R, ^$ y# p) W7 C/ z; F% l- ?* ?$ K, d
MODULE_DESCRIPTION("Led platform driver");% N8 K0 E  f- B$ d2 Z, a" s& O7 n
MODULE_AUTHOR("Tronlong");3 T7 B+ U; Y- E
MODULE_LICENSE("GPL");
$ y) S( H0 z* p( ?
$ k* C8 m: {& f( ^9 n0 x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 10:18 , Processed in 0.044503 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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