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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; f( n% K) Y5 z/ W: s#include <linux/init.h>3 h" W6 o7 G6 k
#include <linux/module.h>
0 X6 Y6 B( i# r9 A4 l8 h#include <linux/kernel.h>+ f: q! h% N; U  k
#include <linux/types.h>! w! {6 m1 t# A9 o! ?. K, E
#include <linux/gpio.h>& x4 h% R0 X5 Y
#include <linux/leds.h>
" e/ B/ p/ {/ N- m5 z! d#include <linux/platform_device.h>
; E* b: z$ r& X9 L7 |, B) }% i1 W
/ g6 @- ?* Z8 `' B3 t5 d  n$ K#include <asm/mach-types.h>
1 Y% i% j7 f/ s( h( l" y; ]+ [#include <asm/mach/arch.h>
: r7 t) p0 v8 k3 V" |1 {# c#include <mach/da8xx.h>
3 g% A/ X# j, g# r( r3 }#include <mach/mux.h>
- K+ ~( M9 ^& ]5 b+ F' s, Q1 r( P" h# P/ P% Z) W( A4 d9 r! q+ q
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 s1 Z4 m, @8 @# ~9 K# j5 P8 s* q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
. q2 {+ i" R" I+ Z) c7 ]#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)' J* D; f2 z6 ], S  V3 J
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)+ c6 e$ C% P; l; j. d4 g2 E" P

$ e$ @6 F" E# _% Y/* assign the tl som board LED-GPIOs*/
8 A# H' g4 G) ~6 j8 i  f. Wstatic const short da850_evm_tl_user_led_pins[] = {5 Q4 i+ `2 o7 R, G
        /* These pins are definition at <mach/mux.h> file */
: f/ o' O- C; d! ?" h: B        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,! }$ a! s5 n9 G" u1 C+ Z# t  c+ K
        -1% U; X0 C  h5 b0 `2 t' A
};
& g% u" I1 Y7 p5 i" I% k' D9 i7 E2 Z" r
static struct gpio_led da850_evm_tl_leds[] = {) ~, w" [8 e% V
        {
/ @7 V! _- i3 ~2 H* ?                .active_low = 0,. B" c2 e, Z, F) p/ @
                .gpio = DA850_USER_LED0,
* G: }0 U3 \2 O% J/ I) P) [5 b/ k                .name = "user_led0",% o! j1 b# b2 x1 ^
                .default_trigger = "default-on",) x# Z6 E4 G3 g; @% A0 g: Z2 }0 @
        },6 @# `; E6 g, e& ?  [8 T
        {" X9 t/ [+ P! p6 M
                .active_low = 0,
9 k3 e2 |  r& l                .gpio = DA850_USER_LED1," m/ S% _- P  |) ~$ F; a7 E
                .name = "user_led1",
) Z& l3 Y! N$ i                .default_trigger = "default-on",
: \' b5 J9 c: _  G8 i        },. g5 x. y- r4 _5 ^: V5 e
        {9 J9 d, k5 \3 @6 n0 I; [
                .active_low = 0,4 U1 ~3 f! w( F  L( }- o
                .gpio = DA850_USER_LED2,
- M, n2 a3 x- a* u) d( w                .name = "user_led2",
$ C) d5 n6 h$ |! O$ Q                .default_trigger = "default-on",
/ t% s* d4 \/ O5 k. z1 Q        },
8 R  r+ T. Z4 R$ M$ [2 \        {6 k+ n# ^. F# i" X$ i  q* W4 ^6 w
                .active_low = 0," Z9 C) z  j+ S* \1 \
                .gpio = DA850_USER_LED3,# f9 a8 c, L- [4 ]
                .name = "user_led3",
4 x4 m, A- T. y* v% m                .default_trigger = "default-on",! j- R# Z0 F6 w. S
        },
* s0 M; _; F5 o( s# G: M/ B};
& @& ?; `+ H$ s: D
+ S4 q: C) M( ~0 dstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
7 q! w, Q4 x4 h: c) f( [0 `        .leds = da850_evm_tl_leds,
; q; `" K; `3 P5 ?        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 E- G( F2 A. u5 n8 M6 s) [3 I' Z};3 ]/ _+ R$ m3 a( y. S9 b# c# D  t2 J5 |
. [8 s0 U; d7 M6 i+ u! @8 {: [
static void led_dev_release(struct device *dev)
6 M3 f2 G( @% ?" M. H  {{
! [1 d1 z  a+ L$ O; [+ ^5 c};
2 V" [. e0 N' A
5 F$ K: q  o. X( |static struct platform_device da850_evm_tl_leds_device = {
2 K! H5 s  X/ K6 N% H6 o, g        .name                = "leds-gpio"," Y; I& X  m; {6 |& Z# T
        .id                = 1,
# |7 K0 G* [+ O6 }! I/ v        .dev = {6 `. X7 E' L& ^. u
                .platform_data = &da850_evm_tl_leds_pdata,
  i- R9 e1 |  }0 T5 ~- E                .release = led_dev_release,6 `- u5 H' n8 c8 O5 H1 K* {' _. E5 G
        }: L6 }' o) @$ d
};( Y! q% P: ^2 E

% x3 E. K/ A" o: ]static int __init led_platform_init(void)# E2 O8 A9 O2 ]( A. P1 a) f6 _( Y& p
{
& f  K2 c( o% `+ y: N5 e+ K        int ret;. H9 U% v: O9 }1 X9 i
#if 0
4 B( k. b0 |: O        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);* H* X/ d) |& |+ C$ z! M
        if (ret)
. }: a; I# G* U- w9 ~. }; u                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% C: H0 t' a, S( X! d7 B: c
                                "%d\n", ret);
8 C  c( B& \" }" r& ?0 F5 G( x. N#endif
& f1 ~6 n* Z) C0 A  N+ g# v        ret = platform_device_register(&da850_evm_tl_leds_device);
/ y  G' `0 x  T% y: w% ]- Q; ?" b        if (ret)
2 O7 Q5 F. Q( Q7 j$ s0 W! k& `/ z                pr_warning("Could not register som GPIO expander LEDS");
+ G; q% j9 t5 [2 Y, ]! d        else. N. e+ l9 h7 E* D/ w" |$ a
                printk(KERN_INFO "LED register sucessful!\n");. Q  l2 Y' M5 v) ]& k4 g7 j& N7 S
. f" V5 e) _& y6 s$ I2 v0 L& V% I
        return ret;' S- ^  E% x# M, p
}$ \$ }4 l  u4 f; H2 G0 M& D* e
" v8 Y% M8 c( _+ J, Q6 X
static void __exit led_platform_exit(void)
" m( U  A0 ?9 E  o* K; P{
  _0 ~( e+ H% \( x% e! z5 s        platform_device_unregister(&da850_evm_tl_leds_device);! T5 E$ O' a. A  q- ]! f. n6 {' E
, j( {5 K" S4 t5 s
        printk(KERN_INFO "LED unregister!\n");
3 b- ^# `# X6 \( v3 O}
# M6 K5 M9 G; K2 ?) k; z- K4 u2 E) f+ H: a
module_init(led_platform_init);- u# Q: u( a  p' D: R) N
module_exit(led_platform_exit);
- ?( D5 I1 T' p8 u* N& ^( V/ h% G2 c4 K; |  d4 C
MODULE_DESCRIPTION("Led platform driver");  V% R1 {- u6 ]
MODULE_AUTHOR("Tronlong");( y4 l! @; J) m1 p
MODULE_LICENSE("GPL");; E0 K4 m8 m( p! A$ k

, i7 R. m8 \% M) Z; G) m9 p  }
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-3 11:18 , Processed in 0.038012 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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