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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
$ h$ ?+ H4 F$ z1 {1 A! s1 r5 O! G# A#include <linux/init.h>( O/ k, V. w0 U" x0 M$ o( u, I" m
#include <linux/module.h>
( E* _* d8 |, w& L#include <linux/kernel.h>
3 p0 R9 a9 ~4 G#include <linux/types.h>
. v. U; u( h1 d#include <linux/gpio.h>6 w  \, t1 @* k
#include <linux/leds.h>
7 T: E$ I6 `; e+ \' e( w7 G#include <linux/platform_device.h>" Y6 x" e" h2 A/ _9 \% u5 n' K' A
$ a+ B0 ?+ N4 \/ D/ B' @- g3 D7 }0 g
#include <asm/mach-types.h>) |3 b+ H: S2 m  o# Q9 Q2 R
#include <asm/mach/arch.h>0 o* G1 X8 |" D" W5 H/ L0 u
#include <mach/da8xx.h>% m; G5 F8 R, O' h
#include <mach/mux.h>
: Y. G1 `) ]* ?! U5 B
& Q% o# O7 n% k' X: k+ F#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
8 p6 M( e  M6 O6 r  m$ w#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
  I" p2 u3 b: u: {#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
$ v6 V" G# N" d# J#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
9 h/ k4 Y. d( @% L  c) q! L( N
* B9 u7 P, V* K) R. k1 i/* assign the tl som board LED-GPIOs*/
: c* c# N1 M9 f" H: xstatic const short da850_evm_tl_user_led_pins[] = {( J1 ]( E# b0 s. T+ d
        /* These pins are definition at <mach/mux.h> file */6 E8 R6 Y, l' L/ ?7 e
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,8 B0 b1 ]& s8 ]: l
        -1
0 K$ s; Z( e( h% d2 M+ C/ ]};
! V7 H  T0 y  a/ _* ?' |
2 |3 d+ z; H& x% |6 Fstatic struct gpio_led da850_evm_tl_leds[] = {. [2 c2 ~4 \* N
        {
: d$ ~7 |$ C: _$ f4 h* S9 N7 B$ c                .active_low = 0,: `; u, e: C* S6 A2 D/ ]
                .gpio = DA850_USER_LED0,
& x6 C% h5 |# s% m0 F                .name = "user_led0",; K6 K8 t. w" F4 Y) r& ?2 ]8 N
                .default_trigger = "default-on",) z7 g! B" b. |7 _( t
        },
  J, o- Y! [) e* Z2 r" H2 {( a# x        {
" E! X# d. _: j0 L5 ?                .active_low = 0,
% @3 ~/ S- C2 y6 p                .gpio = DA850_USER_LED1,! ]  T: Y2 e2 ]4 X7 @8 l
                .name = "user_led1",' X0 m( E3 p% P+ S; c1 c
                .default_trigger = "default-on",  P( `3 V! p( N! `2 Y: d
        },
. I' i' H* G- Z6 X        {
, o6 Q2 L& v# q# N% k& @2 L3 ]                .active_low = 0,
$ }" i0 ~2 H$ `3 E( |                .gpio = DA850_USER_LED2,
0 @* y! {! w3 x                .name = "user_led2",
! p# V: D8 t9 ^                .default_trigger = "default-on"," i$ z. {0 }  u  L7 j* ]1 f' N0 \
        },
; {  S9 J1 W+ d3 y; ?  z        {" f' o  X1 F; ~4 k
                .active_low = 0,
* o: v0 l) W9 e                .gpio = DA850_USER_LED3,
: M: w1 l# C% w  [: R% w                .name = "user_led3",  d/ i- ^3 \. C
                .default_trigger = "default-on",
9 C, D/ D/ F) ]0 C6 O3 y5 ~5 V        },8 \% O) @% P& K1 Y" W' j2 l1 G
};& @2 f5 t+ K0 ?4 N  D

# l& S- O& z9 ^static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
: A; H- ?. _) o        .leds = da850_evm_tl_leds,8 i! p6 \" m" w+ z. ?
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 Y' T+ E- H, ~% U% v( n+ C8 F+ r3 C};# f: R: c2 g. P- }
* b5 ~+ n) l0 ]/ b8 Y4 L! p
static void led_dev_release(struct device *dev)
. X) @/ O+ [7 I: A( L4 q1 a3 D8 P{
# B  R- }) T+ D0 p+ X" t};
& {3 z+ m7 p$ Q$ V8 ~" D% d- o; ?$ r5 w0 i, h4 R( `" Z
static struct platform_device da850_evm_tl_leds_device = {$ T% Y! r2 B9 O) l3 {* R: @- M& W
        .name                = "leds-gpio",( _8 w% W# a9 y7 [* F& i
        .id                = 1,$ S9 v8 M" P& k$ q! }' L: a
        .dev = {4 U+ ~# T( y8 l$ |( a
                .platform_data = &da850_evm_tl_leds_pdata,
% T" Q2 |; L7 U! V; F  {                .release = led_dev_release,
1 f) x2 c& d3 U+ N3 P9 }+ C        }9 x: ?# E! m( F6 a3 B
};
4 N( R9 I) Q; J  K$ Y5 `. H( D8 h5 a+ A
static int __init led_platform_init(void)
& O" r* {3 H9 _0 J4 D{
9 O% U& o8 F) Y, [2 u        int ret;
% f' P( Z0 }' O1 j0 U#if 0' {1 Z- Z( _4 H! c
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);! t2 H8 ?" Q1 q
        if (ret)' O! @2 F# f. }8 l! i" z
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"0 j$ Q: t2 `6 E4 U) d9 O( s9 T
                                "%d\n", ret);
6 `9 i8 V) |" i#endif
6 V6 t( c% {; B, p* h        ret = platform_device_register(&da850_evm_tl_leds_device);
- N/ g4 v6 n5 X5 b        if (ret)# ~) t: A  J  O& H5 a! n
                pr_warning("Could not register som GPIO expander LEDS");
# ], }9 Z5 ]" X+ V; L        else
2 D7 J9 D5 x) j4 \                printk(KERN_INFO "LED register sucessful!\n");8 [' _" S) S& ]2 M4 k& k

0 Q; c" e6 u0 ^7 x9 b        return ret;
' N8 |* D; ?: ?}
/ E3 T4 p3 m8 i3 Q) g1 z+ U, P5 n3 v  s: d& R  k
static void __exit led_platform_exit(void)% l0 y" D- t9 t! S: v
{
9 ?, E0 G5 |: b6 B        platform_device_unregister(&da850_evm_tl_leds_device);
8 z* L9 }! y3 D
; Q+ P9 x6 V" T! s, }        printk(KERN_INFO "LED unregister!\n");
' J/ i4 v) h4 l6 t, l* d}
8 @. I/ ?* r" K- G/ D9 j" A- q  `- |3 r
module_init(led_platform_init);
: R# w' |" d, {+ e) l: ]3 T- j/ P4 Bmodule_exit(led_platform_exit);2 M* i8 p$ R, G9 h$ m9 ?- ]8 f$ }
8 o3 B& W1 J2 H; b: m
MODULE_DESCRIPTION("Led platform driver");
% T, D- {; j4 j4 z( J& D' g% QMODULE_AUTHOR("Tronlong");* G2 _2 _# M- K
MODULE_LICENSE("GPL");
0 S: @! R9 N2 Y1 _3 F
. h# F# q3 |9 D1 Z8 k: q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-1-13 16:22 , Processed in 0.040338 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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