程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
+ U0 T- g' [+ @) H, X. G) J+ A#include <linux/init.h>1 V* Q  J' u+ M8 a
#include <linux/module.h>; y& b& M7 P; H, b' x4 d1 N0 w' [: H
#include <linux/kernel.h>  b6 F$ I7 j7 ~( [2 D9 I
#include <linux/types.h>
* {' O4 G, M  F; x' R# M/ G; L#include <linux/gpio.h>
4 H) |: i, z1 g, {' U7 j#include <linux/leds.h>. v* K& F6 ^" D; n6 ~
#include <linux/platform_device.h>
7 b  H0 y1 A0 b  t
) \5 w. H. [4 q#include <asm/mach-types.h>4 J, m  s  m% P/ N& ], e
#include <asm/mach/arch.h>
* F3 y# s6 |$ I) }/ Y3 v: a#include <mach/da8xx.h>1 d/ y. A/ d+ \& g2 H6 v
#include <mach/mux.h>( {. u/ s7 c4 l7 e* T

$ ^' v5 }( {1 s( j" Q) n$ n#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) C) K6 t  t% N+ K8 z#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)! R/ `& j: G$ s+ v8 W
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)% d- J5 u, w* F: D& `
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)) D8 I3 S$ N. s
% h/ S* r* n5 B
/* assign the tl som board LED-GPIOs*/# q) a1 z$ x0 }  B7 Y
static const short da850_evm_tl_user_led_pins[] = {
% c: K* O6 g* |        /* These pins are definition at <mach/mux.h> file */! T' y2 f, v* X/ I3 v( [+ m4 L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
; Y" o- q5 Q% W        -18 k2 L, M# Y  s; I1 E! [' c3 ^; ?4 U
};
# A. |" i6 T, |7 j4 N
2 X- Y+ M3 N- m; h9 D# N+ j5 Q0 H  Pstatic struct gpio_led da850_evm_tl_leds[] = {
4 |3 q. _5 @) A" M' o2 S3 [0 t, I        {
$ }) }' P. Z, q                .active_low = 0,
5 t; G- K0 i5 S4 w: y3 D7 o1 ?, k                .gpio = DA850_USER_LED0,' ~5 D' U) W5 Y
                .name = "user_led0",
! ?% r; Q* m, I) }, H. z                .default_trigger = "default-on"," x6 e6 F5 m, \3 W
        },$ L$ }3 Q7 r) y  G. L% K
        {6 X: I# B2 g7 M* H
                .active_low = 0,$ w' I) w$ U. A
                .gpio = DA850_USER_LED1,6 A8 g: Y+ m$ d. X' \
                .name = "user_led1",! \; [5 L& L2 M, g
                .default_trigger = "default-on",
4 p4 N3 v5 D% K8 i        },7 T7 {, v2 c$ e" Y2 ~5 p3 n- P1 P
        {) {6 E! B7 \  x$ {
                .active_low = 0," j% ], U: Y# s
                .gpio = DA850_USER_LED2,& m( Z8 C$ _' v# M
                .name = "user_led2",
! j+ X+ h2 Z& B8 d$ s                .default_trigger = "default-on",; z( U" Y. b" b! m, E
        },
4 m+ W8 G9 L( p7 o5 V        {
. T, m% j& N+ J1 t                .active_low = 0,) ^  s% K6 b  k6 |
                .gpio = DA850_USER_LED3,
7 Y* ^5 a! ?) V7 A, e                .name = "user_led3",4 R8 {. t( ?' v
                .default_trigger = "default-on",
. q1 Z9 y. ~3 o: J' W/ i$ H        },. G. c( H4 a1 I. L
};7 P; Q1 ~& s( h0 Z
! q( X* S* V+ l8 b/ I
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {! e* d- s/ V! ]+ ]/ q; R7 V
        .leds = da850_evm_tl_leds,6 Z" B; `: _; U: W
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ P+ v0 e" i& j6 r
};
$ b, S  M& z2 Y8 p9 n
6 @; \' h% a1 o0 {+ ~$ jstatic void led_dev_release(struct device *dev)
, _% w2 V2 S! H! a, q: {{
$ p" f0 `: j/ P; v7 e" h};
5 k8 \( |: V- K
) ~, s7 |2 m# h& q. M* X- Rstatic struct platform_device da850_evm_tl_leds_device = {4 a1 Q7 j4 W% K# i9 z
        .name                = "leds-gpio",
7 @* a7 ~8 k3 H. A' [5 ?: q% i        .id                = 1,
) g( Q+ [" c$ p% H+ j- x, Z4 w        .dev = {* P8 e  l/ i8 S5 a
                .platform_data = &da850_evm_tl_leds_pdata,4 z! _* v% C2 _# E4 f% X3 N
                .release = led_dev_release,
0 O9 D2 l) ~3 Q4 p" ?2 A        }' W0 f* L- B& G3 O+ x4 w- b
};
( l+ `3 I- j3 i! t4 M. Q% o
! T. m0 ?# J! X6 ?1 E* y% ^- h0 Nstatic int __init led_platform_init(void)
9 d$ S6 v* m7 H{- R! f0 \* Q& m, m
        int ret;; f# J% c- i" Z& Q3 E9 N9 W" F7 W
#if 0
7 @: ?* }% J' c- ]& A3 \- U* a5 l        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; k6 a; F2 s9 o+ z) v        if (ret)' e/ ^( u; H! `7 H, S
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"/ U2 ]4 |7 R" g/ R
                                "%d\n", ret);7 j6 P7 j: P$ G; u5 r+ W! Y/ Z
#endif2 J) f9 @' a, |  C
        ret = platform_device_register(&da850_evm_tl_leds_device);6 h' r0 p$ Q8 D, G
        if (ret)1 o% T  N% P/ o0 H& r" z* u2 I
                pr_warning("Could not register som GPIO expander LEDS");+ D& x* G5 h5 q
        else& N% f4 D6 Q% ?9 S: n: t, b1 U+ K
                printk(KERN_INFO "LED register sucessful!\n");
* I/ k' T; M) x9 n* X, F& W
5 B/ e7 W  G0 W        return ret;
/ H6 Z' t. H6 E  P& V5 d}
/ d, o* c( u6 }2 l8 ]
& Y! e  }, ^. l8 vstatic void __exit led_platform_exit(void)- O. J, x: s: g
{6 w2 H) j, A& @9 E
        platform_device_unregister(&da850_evm_tl_leds_device);
8 i9 Y" J% Z4 F) e- g" l0 Z
0 B% s5 R2 X) y, X1 j        printk(KERN_INFO "LED unregister!\n");" R: ~+ J0 b- I
}4 x+ }9 H" B  E6 |$ x' B" {* ~
% Q3 y9 b& Z- o1 y2 C& t: p, i
module_init(led_platform_init);. x: h7 V4 U5 @$ r
module_exit(led_platform_exit);" e# R0 k# @% s3 x$ ^
6 T* n. A. m6 L0 I2 H
MODULE_DESCRIPTION("Led platform driver");
- J/ p8 K( e5 GMODULE_AUTHOR("Tronlong");, W1 Q4 L0 z" W* p$ e0 i3 T) O
MODULE_LICENSE("GPL");
5 c" i! f9 }9 s1 q0 L* q9 c9 t* N: ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-24 18:36 , Processed in 0.037492 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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