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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 q0 k+ R) f1 R) A
#include <linux/init.h>
1 v, R0 c& e. g) h8 Q#include <linux/module.h>& _$ S6 \2 Y' L' X' Z
#include <linux/kernel.h>
9 A& Z5 [& _! R  a#include <linux/types.h>7 S8 [9 b" @/ a2 O
#include <linux/gpio.h>! `8 N+ M0 w- `$ O8 Q! m
#include <linux/leds.h>" e5 [" _2 `& U+ [0 K2 X
#include <linux/platform_device.h>
( D& G$ p. X6 i) I
% f9 H9 ^9 N- T/ V; k. A5 ~#include <asm/mach-types.h>- d, j$ A3 T2 ]* C' H
#include <asm/mach/arch.h>
/ N; v% O, f5 C6 K/ |7 w6 c% r#include <mach/da8xx.h>
% _) e' \6 G" G) V) w, }#include <mach/mux.h>* v) L' p9 z) ^
* r% Q) u0 |1 b3 D
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
& h1 |; [3 j# p, L#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 r+ d% ?* a7 K, {" R
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
) t1 {. {. z7 y  u9 r: s" m#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  w$ s$ Y7 J. z5 ^: x
. G) c8 O/ D- U8 V* ?
/* assign the tl som board LED-GPIOs*/3 N5 e2 ?3 l+ T' p! r! ^7 [2 T
static const short da850_evm_tl_user_led_pins[] = {2 i  u7 r, K; a+ J0 D; H! U: ?
        /* These pins are definition at <mach/mux.h> file */
4 D7 L2 M3 g: |+ l# j5 |        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
6 T1 r$ `) G1 l' A, H% M* _        -1- {# Z& E$ W7 x1 ~9 A- v
};
! F& I0 `5 Z/ A( R
5 {! }5 I! G0 Z* [9 P* h! l( dstatic struct gpio_led da850_evm_tl_leds[] = {- }( l/ o+ x+ m! L8 ~; L1 N3 T
        {
% d5 k: ~( m) l3 i9 e4 p0 F: Y                .active_low = 0,7 t$ Y! c" j! e6 W4 W
                .gpio = DA850_USER_LED0,
4 q, a" f2 E9 [2 A                .name = "user_led0",
0 I1 K" U& b' u* ]: k6 p6 X6 @1 r                .default_trigger = "default-on",
+ w3 V9 d% V( y        },
  j- ~5 A# B2 _( _/ p$ @" @. T        {2 Z, g  O' p! ~* g: b& Q5 l0 n+ ~
                .active_low = 0,
7 @- Y: t* F( x2 P                .gpio = DA850_USER_LED1,) G' {% m5 F0 E6 }1 a2 q$ O
                .name = "user_led1",
7 }0 H' ]' V$ S1 m9 w& f4 n# p                .default_trigger = "default-on",$ Y  j: n( ]5 s, W' x3 }3 M" W
        },
$ I* ?* O& h* Z# U        {
, I, g- R8 v5 T2 ]2 X) k                .active_low = 0,3 S2 V+ V: }. X6 U
                .gpio = DA850_USER_LED2,5 s/ k  h0 Y& F: ~$ f$ ~
                .name = "user_led2",
) x8 C1 }8 ?3 C& f3 T2 _5 u                .default_trigger = "default-on",5 ?% Z" p; S. p  v: {2 u. |
        },( m- G5 o, j2 v6 T, r* G4 T
        {
7 D/ I9 l& P/ C" K, E) E                .active_low = 0,
! |& u$ q! ]5 r) H* O                .gpio = DA850_USER_LED3,
* P. \3 \2 v9 V5 s. d: E                .name = "user_led3",% A7 h7 B" Q7 L/ ]
                .default_trigger = "default-on",
9 G/ z+ ^% Y: s- O* L  f        },
0 U6 x. u6 }8 g};
- N. a% Q1 P9 h% f7 h+ {, J* t
- C, D/ F, h2 O9 n* p0 sstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
4 ]9 o# R2 C% j; Q, m* E        .leds = da850_evm_tl_leds,
2 D5 H% A( z6 e3 R- r5 K' L        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),, d; Z* S' }- k* K0 U2 K7 r& u2 O1 j
};. D9 N: M, _. v" ~1 h2 t7 P
9 J! ?& v* D- q- ^2 c3 h
static void led_dev_release(struct device *dev)
5 i' q; Y. |% F0 R# b6 \# J{9 k1 @+ C/ D" ?* P: W1 E
};
/ r) w& v5 w* \7 y/ Y: j! L! t5 D7 i7 ?) m
static struct platform_device da850_evm_tl_leds_device = {
% w% C& p8 R: |; ?! E        .name                = "leds-gpio",
6 t4 r6 v6 a0 P7 D$ x        .id                = 1,, x1 R, T: m( E, @7 o
        .dev = {9 h% u' z4 u6 X0 X/ u2 B) i. P- c
                .platform_data = &da850_evm_tl_leds_pdata,3 V6 O. ^* D% K: M! G# j' F- z
                .release = led_dev_release,- Q8 e/ D2 f/ B  h4 f
        }) b- \  r% ^/ K" A0 x3 w3 w  o2 g
};
" X) G, a4 q& @$ g$ \; g  T2 G9 S6 N* P( i6 D5 ?  |
static int __init led_platform_init(void)
) W5 i- Y5 G) _6 f{
+ s- k4 F; v; F$ e        int ret;( _% O* a9 a. R: K: y
#if 0
6 S/ p3 y' \: t( b+ K$ G/ h1 ^        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
* |9 i* z7 e& F9 @0 E& |" X        if (ret); A: q( O) m" s$ o
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 w: }1 @) L- s2 x/ c                                "%d\n", ret);
' J3 A! F! ]& F: Y$ @! P#endif
2 j; a" S5 R/ x        ret = platform_device_register(&da850_evm_tl_leds_device);8 E% S% g( u7 X0 m, u3 F, k+ h
        if (ret)) |$ G. W! B1 f& Q) m  H& z
                pr_warning("Could not register som GPIO expander LEDS");. U4 U6 q' V( ^
        else
: P, L% y3 T' d) P* m& Z+ b                printk(KERN_INFO "LED register sucessful!\n");
" [7 m6 H( D  t1 z! a
' F) M9 C. D6 M        return ret;  ]/ ~; x7 ?& N
}, Z5 X% N0 D- y" E  {$ V8 N
3 a6 r$ [: L8 E% a3 n1 y
static void __exit led_platform_exit(void)
6 ^& f6 f5 w0 A% p, U# h. y" [) O{
+ e- c* g3 \# ?0 x: S/ X        platform_device_unregister(&da850_evm_tl_leds_device);6 j- ^& r: e6 h4 E3 w  Z

, c2 t: f+ c( j5 O        printk(KERN_INFO "LED unregister!\n");
* K; }+ j9 b  y. C}  W: f  X4 C. a  T9 |

$ z) M  E1 W1 j+ Z6 l* nmodule_init(led_platform_init);: s" [& y; X! Z9 T9 B
module_exit(led_platform_exit);) o) E/ z7 y& H& _. M7 P2 M: V
6 }8 n+ l! h6 _+ Z" u- o6 v
MODULE_DESCRIPTION("Led platform driver");! t# p& i$ s' i+ p/ d
MODULE_AUTHOR("Tronlong");* p; M4 F. D- O# O" ?# t1 t- E
MODULE_LICENSE("GPL");5 V3 u" J7 y' o
6 T; ^* X: p: Q" y3 j+ @5 W
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-1 02:25 , Processed in 0.042438 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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