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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。% _7 K5 O, k" ~
#include <linux/init.h>2 M6 P' X7 T( O8 N+ @7 K1 X6 P9 _
#include <linux/module.h>; n# M' ^9 Y( ^4 `* r# q$ y, Y0 C
#include <linux/kernel.h>  o) G8 i( [& a8 [' `
#include <linux/types.h>
. U( Q6 Z& @9 b6 j9 n( ?6 y( u#include <linux/gpio.h>+ K2 G6 p; l8 l4 W( ]" @
#include <linux/leds.h>" I- n2 ]! Q+ e" x( f' q! ?; i
#include <linux/platform_device.h>; y0 s9 C; k. f) F1 |' _3 t
( G% R* L! H4 d7 h# I! x# U
#include <asm/mach-types.h>+ `( M: t0 b  l; m* H
#include <asm/mach/arch.h>( d3 q7 {: F, p( O) J6 g6 ]6 ]
#include <mach/da8xx.h>& n2 v! }; _) @) i
#include <mach/mux.h>4 y, F4 K# V. z

0 E, k+ Q  c( Z# w#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
2 ~: q* J$ ^) R  Q" K#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
7 `* U5 H- ~# f2 Z. w/ v#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)" W# N' H; g/ u4 w0 D. a
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
; \7 r/ w8 ?; T# o' E# B$ D! K) w- x8 W, ~# Q& E, i
/* assign the tl som board LED-GPIOs*/
0 X; Z7 Y% ?/ ]# J% Zstatic const short da850_evm_tl_user_led_pins[] = {8 A/ N6 e' ~1 M* N% \
        /* These pins are definition at <mach/mux.h> file */
% w# B% I8 L' Q7 {# _. s# M        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,$ I3 |6 D6 ?" ~5 {% x
        -11 R+ i9 \2 P, O& x$ T
};/ ^- r  ~: |) K( F8 L: }' W
0 ]6 {$ I. X0 t( Q" p% N0 F
static struct gpio_led da850_evm_tl_leds[] = {
; q1 h% s1 h( ]( T. f        {
0 A) F% p* V5 k( i8 W6 Z                .active_low = 0,1 r$ e) V1 ^' ]
                .gpio = DA850_USER_LED0,& C0 T% h/ H9 E& j
                .name = "user_led0",& e9 O3 I% c7 F
                .default_trigger = "default-on",
1 ~" H' T9 n. }4 m2 \) w        },
0 f( P6 |; |& w5 R$ i) r        {3 T2 I2 Q! `7 H( O
                .active_low = 0,. C+ P, N3 N0 i% l8 n! r
                .gpio = DA850_USER_LED1,
$ W. T" ?) @' b! D+ m' L! f1 o" f                .name = "user_led1",2 w& {: Z5 ~& P& K
                .default_trigger = "default-on",
) B# f: u9 J+ _0 a* w' e        },' Y; x+ |5 W5 i
        {3 _, F7 i! e, E- N
                .active_low = 0,1 C8 Q/ m5 K+ ^( Z: L
                .gpio = DA850_USER_LED2,# M! n% v$ K, }4 @- N" U
                .name = "user_led2",& ]6 Y( g2 ]: @0 P' o, O0 u
                .default_trigger = "default-on",2 l3 j1 K$ V: t" e! \  s. v
        },
# d' a% Z; q) z        {, F; U& V1 U: z5 X# f. G/ p3 s
                .active_low = 0,
- x+ Y3 r4 {, I4 h4 p* ~2 m( b* \& \                .gpio = DA850_USER_LED3,
' h$ I3 v+ x/ W" h7 Y                .name = "user_led3",  i! D4 f; R6 \+ I0 Q' |; W
                .default_trigger = "default-on",5 ~# y- f9 J  `: p! z
        },6 P! ]2 s3 Q5 o6 t
};1 f5 P; P/ x' C7 o) F0 r2 K5 e( b
# g+ w! ^4 V- d9 W4 ^8 W, w
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& ~2 U9 M8 j% U$ N0 Y        .leds = da850_evm_tl_leds,# `2 g. {) K3 ~7 R8 V0 ]
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
( z7 v& u7 `  p: U+ T5 s! C7 c};) m) x6 H1 E0 h# B# S- @6 l' }' W
& j  L% G+ L& G4 e& N' I( Y
static void led_dev_release(struct device *dev)$ O+ h+ }9 Z6 c/ }! k3 q* [
{2 g  \. {( T& N% {% Y0 a% o: _
};% J, h5 b# U* Q0 I7 V) z) I

7 X: {  l# ^, j9 i: V0 B% Dstatic struct platform_device da850_evm_tl_leds_device = {( y$ |# d# K6 C& p* q  S
        .name                = "leds-gpio",
- J+ G: u8 c1 n" [" G        .id                = 1,
  |: q" l6 E3 X1 a3 N6 i. M        .dev = {; S- R; \. A- _) \+ j) v
                .platform_data = &da850_evm_tl_leds_pdata,
6 \4 _* m5 Q9 M                .release = led_dev_release,
/ r0 D4 s( ~' S& k2 a/ c; K+ m' @% d        }; t$ n: o9 Y; X5 t" {% e' J& O3 v
};
7 Z0 H0 r7 ?8 Q! Y, G, W
, L1 \0 H) ]2 ^7 b5 estatic int __init led_platform_init(void)
9 D8 W9 N/ z' m) V6 e{* [& O$ j1 k3 i/ E0 T
        int ret;. d  D/ D7 O1 B8 h
#if 0
$ K  R* s# a1 m/ B/ ?        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);. Y- M  L9 a! T3 P$ i; ?
        if (ret)
& z: u! D9 d; Q# j1 m                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
7 Y* @" f/ q/ w/ F; g$ O                                "%d\n", ret);1 d) p1 V: v3 `' W( m3 H
#endif
$ s) M& N( c! t: j        ret = platform_device_register(&da850_evm_tl_leds_device);
! ^' j# l8 k' a2 g$ ^8 k. V        if (ret)
0 m- [( S$ t) w" [! M) P5 i5 k* g                pr_warning("Could not register som GPIO expander LEDS");* c8 e! a' N2 d( o% [9 ]
        else% F" d, J5 [6 ~# w, t* P+ O
                printk(KERN_INFO "LED register sucessful!\n");
3 m6 K. W, ^4 B  }, B6 Y
2 i, I+ Z% K9 L: g        return ret;
8 t7 d* O- R4 _: i+ ]}9 B4 j3 h" _2 ~6 m- n$ r% x

% b* W% b) W2 Y9 q# e7 l) A: e# j( gstatic void __exit led_platform_exit(void)& b  X, K1 u- ?4 _" @
{0 c! q; m8 c2 g+ }4 X( X
        platform_device_unregister(&da850_evm_tl_leds_device);) m: }3 i* q5 r" k/ P. z( b( v
4 w0 A) Q5 _: I
        printk(KERN_INFO "LED unregister!\n");* _% a) P. }' F9 \# }* G  \; M& f
}
- C! x, u% ?) V9 ]  z) }$ W6 |- O% }' W% y3 D3 v  f3 r
module_init(led_platform_init);+ k5 A& L% f4 z2 |* E
module_exit(led_platform_exit);
7 l. Y0 J5 J2 W0 F; m. x* A: l& u9 |2 n6 z3 V
MODULE_DESCRIPTION("Led platform driver");
* n, Y! z! V. d) mMODULE_AUTHOR("Tronlong");7 ]* Z7 M( B# e+ l4 t
MODULE_LICENSE("GPL");
: n1 F7 X9 I1 D. J+ k
" I' G8 f8 B; I/ B+ o+ Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-8 11:18 , Processed in 0.038469 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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