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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。) _6 a! k3 d; j3 @! z+ e( G
#include <linux/init.h>
, Y) R$ ~. y- \+ T4 K#include <linux/module.h>$ G8 f3 Z3 ~0 W/ d+ v5 ~7 A7 F
#include <linux/kernel.h>
# U) X* J6 p6 h7 V1 \#include <linux/types.h>
" S$ |4 [# J/ g3 O+ V8 f( [#include <linux/gpio.h>
0 E( n" ]( U# T0 r5 Z3 @7 N#include <linux/leds.h>
! W+ C( a* g2 ^: ]) w( x#include <linux/platform_device.h>
, h1 `" L* F! h6 e. q: ^
! p/ `3 n# C- i#include <asm/mach-types.h>  U# _2 G8 q4 u+ [; \" \
#include <asm/mach/arch.h>9 w0 a# K5 ^. G9 s0 }
#include <mach/da8xx.h>
3 I6 v9 K* O  k1 p- S. M#include <mach/mux.h>
" w1 g8 W: _2 [: `* |% F
; X! @3 p' u, O3 V#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)6 n, K# M. S5 K* s+ o9 w
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" S7 v* J, }. n( a. L5 U: ~#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
+ G* v# U( B7 Z$ e, d7 Y#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)  E7 G* T2 A6 [- R; a

3 [) P5 t' E- D: C# ^2 v+ d" m/* assign the tl som board LED-GPIOs*/
( }6 z+ v9 O) e+ t7 r9 tstatic const short da850_evm_tl_user_led_pins[] = {
3 |* {+ p2 c& Q# W4 O        /* These pins are definition at <mach/mux.h> file */
% F  K) M8 n. I. p) t+ Q        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" ]( U& N. t( v. C% a2 P        -1
. F8 |+ Q5 c2 n$ m9 ~, }: Z! y$ a* v};
6 |7 u5 M. H' e2 ?6 j* l# y3 A9 N3 n' r" V$ d2 [# L+ N
static struct gpio_led da850_evm_tl_leds[] = {
$ g7 j9 v4 L, D+ K. P        {+ b8 z! q: E  l
                .active_low = 0,
# B/ o0 a: ?# `. n                .gpio = DA850_USER_LED0,
% C* n0 c0 Z) M0 j! ?+ a7 [# w                .name = "user_led0",$ u4 W. ^' w1 n  t2 ?: @
                .default_trigger = "default-on",$ w) d1 j% i3 }7 P4 J7 A
        },
0 G& q- e9 Y( a        {" d) t1 r: {; ]) |. W; y- u# f
                .active_low = 0,
' m; X; S* k! j% j; q                .gpio = DA850_USER_LED1,% B$ |" z2 P& u& s9 v# ^
                .name = "user_led1",
9 _0 @) X8 ?( K8 @1 W7 j% a8 _                .default_trigger = "default-on",; x' x3 _+ R, e* N
        },
4 R) {) D- h8 N# i* w4 r# g        {9 v* v, [" b" p3 {% R5 C7 y
                .active_low = 0,2 c, t% ^& g' U
                .gpio = DA850_USER_LED2,, \% ^0 M8 Y. \3 ]) q
                .name = "user_led2",
* ^& ]3 q( B  X" c( D                .default_trigger = "default-on",
# x/ l) s( v9 E" Z/ m% w% f& y        }," m, K4 ~% f! s
        {
! ]; {# p* w5 Z' ~& H6 G, I                .active_low = 0,4 N" z- U; _7 h/ a8 v
                .gpio = DA850_USER_LED3,
2 l% A& X; N8 ~                .name = "user_led3",
& D, A' h! m5 [! q" U: n                .default_trigger = "default-on",
/ t4 l: b& z6 y' \0 }        },7 M0 }5 l. c% L3 s
};/ X' p0 E: x' Q8 s

/ n1 |8 \- e: M; P: }: bstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
3 r3 ?4 P- t2 S+ Y0 `+ S        .leds = da850_evm_tl_leds,/ M* j5 `  A, T8 M& z9 L4 M) O
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
4 m: f3 x+ T; {# K: g; G};
- p: Q' s+ D: _4 n4 F* c" o4 l1 f! R# i) ^! H8 O" m. w- K
static void led_dev_release(struct device *dev)
3 P5 F% t( a! \, D/ Y8 p  {{! |9 B9 M3 U, ^2 d' L
};
8 K# s7 v$ k# _& B! h
& E# Y. v7 N0 Z8 h( w0 Gstatic struct platform_device da850_evm_tl_leds_device = {* B3 R% v+ S# ?2 [
        .name                = "leds-gpio",
. e- S; B  c$ _' R' l$ K        .id                = 1,' Q, K1 x6 u* L4 V$ V
        .dev = {
2 O/ V2 p, ?3 j5 A9 O9 t) P  s                .platform_data = &da850_evm_tl_leds_pdata,& Q$ S! }- o/ z3 y* H
                .release = led_dev_release,
- C: s5 m8 H) x* T$ ^        }) G! \2 R% S  N( c. n2 z
};
( K: n5 S6 O4 j# q. y. W, I2 v& `$ B
9 T2 ~8 W, c) b, |; ^$ {# M3 f2 o4 h' |static int __init led_platform_init(void)* Q5 J# f, @: W0 Y& ]
{
' A& ^# D7 n( h& n0 {, O        int ret;+ f, J& |! D: C3 o( S
#if 08 ]" Z9 G& e2 p) V0 n  H; a
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);2 |% F! ~3 Q" H. ?- M9 ^4 w
        if (ret)
4 V' B& P# r6 M, j8 ]" x. l. b  l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" S0 f% M2 K1 p6 X3 b5 @- i6 D& a                                "%d\n", ret);
0 s" L3 C/ l, _9 X8 l: F& m#endif
2 c1 Q2 t8 N9 q4 F        ret = platform_device_register(&da850_evm_tl_leds_device);4 J4 D5 b: ~9 L( Y0 B
        if (ret)% u  k* I2 n4 F6 A4 A
                pr_warning("Could not register som GPIO expander LEDS");$ S0 ^$ u' Z* P3 H' s* m* ~
        else) V9 N$ J4 K; u# y; I
                printk(KERN_INFO "LED register sucessful!\n");
& E  j* Y# g/ X6 Z; `# f
3 D* j/ T/ B! K7 T        return ret;
: S; x* Y! z9 `, c! y- c}
# v' u  R, g: \8 J' u
3 N$ ]& ?* n7 z2 F! sstatic void __exit led_platform_exit(void)
0 \& }; P" z( \# _, i. A{- x3 P( L9 s/ d0 G* L
        platform_device_unregister(&da850_evm_tl_leds_device);
4 L/ e% @3 |' r- n* h* g* _
2 T1 p0 A+ @5 C, R) C  h        printk(KERN_INFO "LED unregister!\n");' T: t9 T/ o; }$ O, E
}' W. [9 w  [" I- n$ B6 M$ ^
: ~' `: A/ T1 w# @
module_init(led_platform_init);
1 T3 j/ d9 Z2 mmodule_exit(led_platform_exit);; k) ?& p/ W  _% A8 ]2 ~
$ @- {# n. V' r* t: J
MODULE_DESCRIPTION("Led platform driver");" u: f$ t2 L8 `' X9 j2 j7 {
MODULE_AUTHOR("Tronlong");" v3 {+ n; [- S# x  g
MODULE_LICENSE("GPL");
- H' G% M. H; V9 _2 |+ c* F* T$ Z. g6 k
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-21 02:49 , Processed in 0.038620 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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