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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
/ M) ?" T$ t4 r8 _' [; j6 c: k4 o#include <linux/init.h>* e8 P) d% F( e+ x& }" f9 h
#include <linux/module.h>
4 `* X& ~7 v' a3 c) W1 t9 X. x#include <linux/kernel.h>3 R2 c+ m& F' q
#include <linux/types.h>+ E% g- Z# J$ o2 |" q
#include <linux/gpio.h>
5 `" d2 ?- }. z$ e$ @4 ]2 m8 Q#include <linux/leds.h>2 p+ Z/ n1 ~: C0 L' O. y
#include <linux/platform_device.h>
7 i6 ~" t+ H" j5 K+ u
5 `" l5 K" D) @1 K" W#include <asm/mach-types.h>
( F& y, _! V! S4 a1 N! h; n#include <asm/mach/arch.h>; x% Q7 _' x( k/ j0 }/ E5 ]
#include <mach/da8xx.h>* R9 n5 \0 O- h4 b: u8 \
#include <mach/mux.h>: T$ G. ^$ L5 g' S! S2 d
  ?: |+ |) A5 y; R0 @# m+ H% m
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% R8 _3 I) a+ P  [. \0 d
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
; m. a6 t8 ~; g! o! v7 k3 B$ q, n#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)& ~& ?1 M/ t0 [8 l' a8 j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: X9 u; Q: c3 C. x( W0 H  [* G+ X7 C
8 B) I- I0 @4 A& k2 {/* assign the tl som board LED-GPIOs*/
9 h1 x: t9 r: N" T1 P) hstatic const short da850_evm_tl_user_led_pins[] = {5 E/ z5 W0 F  p; d
        /* These pins are definition at <mach/mux.h> file */
+ h# G8 w2 @, M- O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
5 w4 _5 b7 z# S4 _( G$ ~* ^        -19 F. F3 B6 E' z- ^) _5 c; l- E
};: p- _' i; M& j  t7 ~5 n2 M
# e; K# B$ ?  O+ }' J5 \
static struct gpio_led da850_evm_tl_leds[] = {9 q; J. x* o* J+ q8 V7 _. B$ Y$ m# v
        {
: S/ ~0 M; S4 M) V. r2 U* G                .active_low = 0,/ a0 M  }5 b1 i# x% G; J
                .gpio = DA850_USER_LED0,, Z5 e" A) M6 H0 e" l: T
                .name = "user_led0",
8 p; ]7 T* [! U! c  Q! h' P& V                .default_trigger = "default-on",5 c+ j& @2 v. Y3 O8 C/ R
        },6 W" p  t0 N5 {5 u: V
        {0 y, T! N7 a# D. i1 v
                .active_low = 0,
4 V2 X# q* ^6 r. Z* _                .gpio = DA850_USER_LED1,3 a2 L/ S! h5 Y
                .name = "user_led1",7 L* g. z( h- A' r
                .default_trigger = "default-on",
# W/ @3 }; l( {7 `4 Y" L6 S        },
" f5 ~1 ?+ M  @) k$ J) L/ e' ]        {7 |, c6 u) o( b& \8 U- _% V
                .active_low = 0,0 u' C4 }/ ]8 D9 w3 g; R7 r- X( {
                .gpio = DA850_USER_LED2,
4 w! H( s) Y& s                .name = "user_led2",
- p) `# i  e& H8 x' F                .default_trigger = "default-on",4 h/ b2 x' G' A# z) |: u. L
        },/ t! I) v, a* K2 b
        {
6 _. V9 Y6 B8 E, @+ Q; F  M$ q                .active_low = 0,- k& v; L, M  p+ Z0 n
                .gpio = DA850_USER_LED3,1 z7 p* [( ?* U& n; P5 _, u* p& T) M
                .name = "user_led3",
9 _; Q2 d( ?. {! p- c, D$ D                .default_trigger = "default-on",+ \' Y! N5 Y" O( r& E+ v8 B/ \; L
        },5 x5 s# g/ D2 G. K2 B# {) v
};, |2 E' A6 k) q5 c5 T% h4 Z

4 U- Z9 t) x. i" l6 y8 D" Qstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {# u* o+ @2 x( ^& ~, {
        .leds = da850_evm_tl_leds,
7 m; k0 o; i( d9 M; v" m        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),- V6 z1 {; _4 J- o  L- w: ]
};
: X6 q, f# C2 n1 E& P3 n) n4 V4 O  @, t# C! l* f$ C
static void led_dev_release(struct device *dev)
* o  L1 v: n2 G{
- ^, j. j6 B# `1 ?$ p/ |- Q: G- G};
% H5 Q6 `5 a0 f" g# B6 f0 r1 K/ k3 Y5 R& c( f
static struct platform_device da850_evm_tl_leds_device = {
' A8 m- N" _% w. g        .name                = "leds-gpio",
0 [$ j+ p# X4 ^        .id                = 1,( d/ e1 @6 d% i% q7 L0 i
        .dev = {
# |% D, v! O/ O9 C: S# i! t                .platform_data = &da850_evm_tl_leds_pdata,
7 i# R. d6 r9 G0 k0 v; I1 h/ B                .release = led_dev_release,
- O; n% [& T0 |8 T% `        }
9 l8 ], g5 V/ l$ Q};
2 l9 e. n4 V# t
3 s( s5 C! X3 Rstatic int __init led_platform_init(void)
+ F& j5 B0 N3 U' K0 s{! a6 k" W1 |" I! Y2 ~: F- p
        int ret;
  q( C  d5 D1 s- M% g) ~5 n  a5 {#if 0
' I0 f2 E$ O8 @/ y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! z, W% f; @. t
        if (ret)
% ^- J, k. m7 [+ T$ I* X8 ]7 l                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"% g$ _& `* |7 @2 ?# a
                                "%d\n", ret);
" p; Y3 [# W+ X, u3 [2 l#endif
8 F1 J% Q: s4 l& d) G* Z& i        ret = platform_device_register(&da850_evm_tl_leds_device);- @6 c# |. J  f' Q6 F. c
        if (ret)
7 D8 B" ~; T, @* v1 E2 b& C                pr_warning("Could not register som GPIO expander LEDS");: Z, S( z0 \! s- v; ?1 h5 P
        else
" T1 N4 Q* t; D0 N! @. R                printk(KERN_INFO "LED register sucessful!\n");/ M5 P6 O! c7 @6 N: R& v2 j9 O
+ x4 h6 W& \- v. V/ v4 d) A2 h( e
        return ret;
. O5 }6 N+ ]1 ?4 V5 ~5 y}
# t/ K$ c7 ~$ W: p" X* O5 [  K; V( S5 m& a
static void __exit led_platform_exit(void)
  Q, X" E2 B. o: f4 R6 `7 b{
% n4 a9 \: M1 z+ M2 V3 x        platform_device_unregister(&da850_evm_tl_leds_device);3 ?$ {. R! u# R) T/ c( Z
/ x' V: ?7 s6 K2 P# M; Z
        printk(KERN_INFO "LED unregister!\n");
9 ]% f  z& Z; X  C$ s3 T}
6 `$ m$ \" |& ]* m4 J9 N* A( }# o
8 [  X; u5 i$ f$ C4 o, xmodule_init(led_platform_init);
( v/ K8 f* [; V! }8 D. Zmodule_exit(led_platform_exit);
6 u3 F$ t' H6 t4 s9 x4 I
. \) c) s$ X4 a( i3 p$ p, tMODULE_DESCRIPTION("Led platform driver");
) A: `' B5 H, M+ }: I7 nMODULE_AUTHOR("Tronlong");
  S) D$ x, d, k9 ]MODULE_LICENSE("GPL");, y$ m2 T; U& h$ \& q5 H

8 s, }2 X+ `. g; k& d
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-6-12 07:47 , Processed in 0.042533 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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