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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。6 `" f6 T& A' _8 t  t0 q+ B* u
#include <linux/init.h>. @4 }$ e3 z6 X: _" n4 J
#include <linux/module.h>7 c! k! i7 C6 j6 {
#include <linux/kernel.h>6 d7 B- s; O- c- c
#include <linux/types.h>+ s0 L3 a; U; R3 g
#include <linux/gpio.h>
5 @2 I& G% y$ [3 m9 b; K$ w. [#include <linux/leds.h>
/ r& C) o+ E) G7 u, O# [#include <linux/platform_device.h>
0 P, H: K/ c5 X/ o" f' B0 I1 Y
8 X# t# E( Q  ]9 b5 f1 x#include <asm/mach-types.h>
( w5 @% Y' S  I% }% a#include <asm/mach/arch.h>
+ h+ t- h4 x7 }6 u) x#include <mach/da8xx.h>; l- Z; X/ X; F% f& S6 _
#include <mach/mux.h>- T6 y. B2 ]: Q* `. M  m

" n$ K& E+ p4 `' ]$ y' E#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
* e) b* |6 A7 x" R! M, _% K6 |#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; c9 m  c8 f+ Z2 I#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)9 i: c2 h( W/ |# a7 V9 |- }
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
1 C. @& E* E$ R" W3 K7 V
4 |- m( v: R: [3 v' k+ _8 X/* assign the tl som board LED-GPIOs*/
) D* u( H5 m* ~) v: e2 D4 pstatic const short da850_evm_tl_user_led_pins[] = {1 k* E2 q( ]. E+ z: Y- F, }
        /* These pins are definition at <mach/mux.h> file */
, ~3 u5 N; x( |  _        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,1 ]* R4 Y+ K  b: k
        -1
6 e& Q% L  C4 E% ~# W/ ]" l};- ~% K4 Z8 x2 p( K) u2 I% Y2 S
3 y& g6 i- _& `
static struct gpio_led da850_evm_tl_leds[] = {4 o1 q( Z& G7 _6 A: u- D/ A( O
        {7 q# m, z; M9 }6 z/ C9 X
                .active_low = 0,
0 A5 d9 H4 l# s  g                .gpio = DA850_USER_LED0,7 s' ~6 E# }! E4 E2 n; R
                .name = "user_led0",' A2 a( r2 C4 n' a8 V) T
                .default_trigger = "default-on",0 Y: V6 h/ Y& u' h, A
        },
- f8 j: {: g, w( A. W        {7 F% |  z& T( ?" y1 p' E
                .active_low = 0,
' M7 I- W& H! |) T# `                .gpio = DA850_USER_LED1,
2 `# `; T$ i1 t$ U                .name = "user_led1",
5 c; U  I) d& l; T                .default_trigger = "default-on",/ a$ d! p! j5 @. Q) c
        },, o! E! }5 z2 R! N8 V& x
        {
8 x' g" Y; v3 @) A                .active_low = 0,5 V% V7 x. u6 `1 Z. N5 ^4 F
                .gpio = DA850_USER_LED2,/ U6 F& [: J$ u) ~
                .name = "user_led2",
6 D; b- U. k$ m6 y+ }! ]                .default_trigger = "default-on",
4 [* d0 n, n+ X        },+ v3 y7 z8 u, J1 r! Z+ P3 h
        {* Q( M, r% I9 Z. ~& @
                .active_low = 0,
2 V& Q# n; r" y* c9 ?/ c9 @* r& l                .gpio = DA850_USER_LED3,0 X3 D+ K1 {3 A3 s) p
                .name = "user_led3",. o& {' |* N3 ?4 `
                .default_trigger = "default-on",
: @4 V6 M/ T8 s( f/ s        },+ b" \6 v1 B( d
};
( i1 B& a+ I6 \4 Z# g- c
/ k" Q5 M: I3 Estatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
& _& \+ p8 \" ~1 l/ Z: J. v2 k  c        .leds = da850_evm_tl_leds,* `* @# z& {0 }) q+ _# v
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),2 V* k/ z( A, @* R, q- D
};
! C3 s+ F5 B( x5 M7 L( u
8 u0 b- o7 \3 z6 D. D0 t/ p1 astatic void led_dev_release(struct device *dev)
7 Y- n: v3 f- _5 i{( M' e% q) e' Q* n  b$ O
};- _8 @' ~/ Y6 q0 v8 Y

: ~! l% g7 k' b5 Pstatic struct platform_device da850_evm_tl_leds_device = {$ C2 U3 y0 s* t, w
        .name                = "leds-gpio"," I  G5 O; x7 q, k, D# `. c
        .id                = 1,# Y9 t( I; S: o: \
        .dev = {
0 o5 _5 d7 t. g: ^                .platform_data = &da850_evm_tl_leds_pdata,( v' L' O  X6 I
                .release = led_dev_release,
3 e* e$ I# l/ a: T/ k  T& Z        }
( J+ Y  t# y6 f};
6 U" U7 S% R9 D& V, P$ G$ R: G! B# Z& I' h4 m/ w3 }( \* Y' U0 s
static int __init led_platform_init(void)
( ?- n) t7 ]- _" m{* U1 `* @- o/ z4 ?% ?" p6 _
        int ret;; o; ?+ k* q) Q6 c9 c
#if 0' a# M+ T. j$ m( |3 A- Z' g( |# X
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
: t" E0 B) i: r6 S8 {( k        if (ret)$ ]* ?6 f" d2 u5 f+ g, K& E$ l
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
; I7 y! v7 E5 `: t0 d                                "%d\n", ret);
/ {9 v0 L4 _* Y" c; ?, l3 L& o#endif+ `% Z7 F0 \# r2 @7 Y# N, O8 J# @
        ret = platform_device_register(&da850_evm_tl_leds_device);6 C) f/ b0 ^  m- M- L7 A
        if (ret); K7 P# B$ C% F9 C8 o
                pr_warning("Could not register som GPIO expander LEDS");; _0 _; E. K6 @1 z7 q+ X
        else
0 q$ I+ f, ]2 h7 S1 s                printk(KERN_INFO "LED register sucessful!\n");
4 _; H( `. s: R  w/ l% N, ]6 `. }( F$ ^$ f. S* Q9 j! o
        return ret;$ r9 F( T9 j5 d! m9 D5 V) N
}
& ]7 k9 A; o( `) I( g2 N) S& m" M: E0 y9 Y( F
static void __exit led_platform_exit(void). }: M2 Y$ |' b' }% j
{
; H$ ~. Y: n' C        platform_device_unregister(&da850_evm_tl_leds_device);4 `4 |1 a- l' N& N8 l! Z, D
# F1 s) l/ U% l. n& k
        printk(KERN_INFO "LED unregister!\n");& D/ F) c% f0 ?% R1 Z( u* b; M
}* b* E. q9 Z3 ?8 p
0 A7 L# L# @* r  C- A* Y
module_init(led_platform_init);
/ Z( S9 W  j5 a. u3 b0 }% Qmodule_exit(led_platform_exit);
7 F9 n0 t% ~4 a3 c9 n/ b7 C  l- c9 V8 Z% K2 U
MODULE_DESCRIPTION("Led platform driver");  m( K5 C+ Q0 D5 n# B- T
MODULE_AUTHOR("Tronlong");3 W% T  e3 b5 A$ @9 y
MODULE_LICENSE("GPL");
9 l- f( q, u! {3 s# d- z7 Q5 X7 f* k  X6 U
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-9 11:36 , Processed in 0.045392 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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