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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
; Z4 ~4 E* }( j; {5 d#include <linux/init.h>
. O0 V0 l5 c: ^5 X% P; O- h#include <linux/module.h>6 ?0 w9 {& r4 x( R
#include <linux/kernel.h>7 X$ ~) E6 [) _1 |
#include <linux/types.h>
) m0 j$ z- l1 Y; r7 E4 @#include <linux/gpio.h>  _5 o6 A8 t; _* {
#include <linux/leds.h>
0 {1 x3 M: l6 M# o#include <linux/platform_device.h>6 I+ b3 N# M( G! ]0 b" ]5 [
0 h5 J9 }2 \4 [) j- l* C* X& g
#include <asm/mach-types.h>9 G" K3 g+ Q  K0 K
#include <asm/mach/arch.h>/ q5 @! U# w" c* I  Q/ Y
#include <mach/da8xx.h>
" Y* F+ z7 j+ @. l. N#include <mach/mux.h>
; }" l$ J5 V, v+ Y; D0 g  M
+ t% M3 W3 p6 }0 {; d#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! t* [* M+ ~5 S#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ P  R' |) o6 R3 J
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
6 h) O% c, X( p( R, Q# H& C#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
% @+ n: K, j5 z, J2 K1 K$ F3 S7 u2 m* b
/* assign the tl som board LED-GPIOs*/
( z; Y0 @" ~. {1 Zstatic const short da850_evm_tl_user_led_pins[] = {
0 Q$ o9 e9 N( S; K5 ~5 |4 z        /* These pins are definition at <mach/mux.h> file */
4 A& r' ^$ }- A) |1 z8 @* c        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
2 |8 P& _: T6 p; \2 ^* v8 W        -1: f) H9 ]0 s# y, t
};6 M' o$ x+ W/ c2 \
/ X3 r, ^  z' ^, y
static struct gpio_led da850_evm_tl_leds[] = {/ Z5 Y7 M4 d1 `# x; S+ a. n
        {; A, r7 F' I7 }9 P3 @* _
                .active_low = 0,8 V' e0 k/ m5 W' k- s: C
                .gpio = DA850_USER_LED0,
( F0 Q4 U0 ^- W, {0 {2 m! F                .name = "user_led0",0 \* k+ D: y0 A! f* ?
                .default_trigger = "default-on",
) ?+ w& H( j5 Y( C" _0 F        },( B. o* W2 h& l8 j4 R: y) d$ [
        {
$ Z- _1 z' o8 j& k7 \6 @                .active_low = 0,
: s, y" T# d- C3 |* q                .gpio = DA850_USER_LED1,
' }$ W1 I5 W  {$ Z                .name = "user_led1",
% _2 A4 u/ s! G" n8 d+ ^2 T                .default_trigger = "default-on",! J) [. k! L" X2 C
        },8 a8 Q1 \% h9 L+ N7 `- c
        {7 @3 A) @- ^; G, u* O
                .active_low = 0,
8 p  N# ~4 `% z  T) G                .gpio = DA850_USER_LED2,+ ~5 E) x; _7 O( @% Q6 U
                .name = "user_led2",, i* O/ c: Z. ^6 |. `# ]% Y: r8 Z/ E
                .default_trigger = "default-on",1 N( d3 ?4 D6 a: a' x1 r5 K
        },7 {, W/ {* _6 L% N* _
        {
; N4 v0 `  o& o$ q( G# \                .active_low = 0,
/ j" N9 |8 n: t, L7 R                .gpio = DA850_USER_LED3,; F" x5 h; ?6 K# X
                .name = "user_led3",
. n. n4 _; I; ]: W' H( i                .default_trigger = "default-on",3 f! s& V* p* v. C! N
        },
) T- d, I7 Q4 X) b9 k! N};1 u$ K! r) ^& U; g* g5 d$ v
* Y, h' }7 R( S
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {/ ~  O& J& `" U# _. X; C' H
        .leds = da850_evm_tl_leds,. c) n' r$ N6 O7 r8 N" m& |# t3 y
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),6 C1 \+ J7 p3 J$ @. F7 s
};
: J5 h  Q8 T( Q; R& n# C
2 n& K4 ^' n" ^0 k, @7 h: G7 _static void led_dev_release(struct device *dev)
8 B) M5 R6 N7 r0 A{& W* _; {1 f/ k" H1 C7 l- \8 Q
};
% }, S6 H: n0 g/ u
  |% t* o  f7 J" E4 v3 Dstatic struct platform_device da850_evm_tl_leds_device = {$ M( O6 I  J0 X* e8 V+ J& S
        .name                = "leds-gpio",# c% A! D4 n0 b5 w0 B, b% Q, w% h
        .id                = 1,8 x/ Q8 T3 J* s
        .dev = {- U2 I1 U3 ]- L; l
                .platform_data = &da850_evm_tl_leds_pdata,( A: ?  x7 i" H+ Z4 V
                .release = led_dev_release,
/ `/ \; Z+ s8 ^, B' v* p: x        }5 M$ f: n4 x9 j' [9 b, |
};
; R; ~7 H- s' O! D
% ~- p  E7 j2 X" o+ |static int __init led_platform_init(void)
* r' I3 X' P1 o+ h0 X- K* E$ Z2 ~# Q{
/ Q  E6 j$ Q6 ?. r  v6 e. f        int ret;
  E4 ]/ B) g- v. N1 v#if 0! X$ t- X. m% E3 S( K7 I
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);" U" u+ v& G/ C
        if (ret)
" z( @+ N/ d  n; _; d4 P! ^& y                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
4 E3 k8 P+ a: p, Y                                "%d\n", ret);5 V: f4 T0 R  e
#endif
+ L7 a( S! d7 c/ F9 D* H. |        ret = platform_device_register(&da850_evm_tl_leds_device);9 y. C  S9 p% l  H4 S3 U
        if (ret)
* i1 N6 g  J% b: u. H! C& y                pr_warning("Could not register som GPIO expander LEDS");
9 N) ^8 L" v: \" ?; w5 j- y        else
" S% Q  \+ r  I, h6 ]% C                printk(KERN_INFO "LED register sucessful!\n");7 Y/ e7 i* K# ~# `( |, {5 |
5 \& P. V  s  \7 g( b
        return ret;1 U& c7 }/ N0 e) }
}
, b; R: z7 Y+ H+ R7 z7 \& \; R) |! z5 m* y: w1 A- p9 r
static void __exit led_platform_exit(void)
7 f" C" t; k0 i' x# x{. b- n& z/ h% ~( m. R( b
        platform_device_unregister(&da850_evm_tl_leds_device);
/ o0 s3 V( X+ J/ C$ R2 W9 \  ]1 [* `( D% m$ w
        printk(KERN_INFO "LED unregister!\n");$ W* q7 {1 r2 o5 v$ p( i6 ]/ t
}
% y& t0 O8 ~/ f  P: y2 D2 ^2 y' }. _
module_init(led_platform_init);7 P% d9 b+ f# l$ \8 ?. S
module_exit(led_platform_exit);
% \, T! w! O$ R# h+ g) {4 l
% H/ ]( U# m/ C6 hMODULE_DESCRIPTION("Led platform driver");
& v: ^8 n! T2 ~  X& ^, A( x) G! SMODULE_AUTHOR("Tronlong");
+ [8 O) r& q1 CMODULE_LICENSE("GPL");& x8 v, S) z) z- B' {6 U

  Y% K& t* j, z2 U7 Z. P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-15 05:08 , Processed in 0.083194 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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