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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
9 k* |& x- X( Z9 d#include <linux/init.h>3 P: o: C$ x7 G+ H2 M1 _3 X
#include <linux/module.h>' y3 E" C4 q# e- v& ~  m% P
#include <linux/kernel.h>2 Z  w* B2 S" y6 n" ?; C! ]3 C' X
#include <linux/types.h>5 `; l3 F$ n% }/ j
#include <linux/gpio.h>
8 D. l1 \" Q# }#include <linux/leds.h>. j( h3 B8 l4 x6 a% ~3 }) U+ o
#include <linux/platform_device.h>
* B. x* R$ ^6 g6 q; ?1 Y
2 [0 h+ E) O& C0 I1 |4 r. ^0 t#include <asm/mach-types.h>- m" d4 O& V* h
#include <asm/mach/arch.h>
2 ^0 I, _) ^0 s+ K9 _0 \; H  {#include <mach/da8xx.h>
& q: Q1 y4 v# h1 x1 v#include <mach/mux.h>
$ u- O' M. y/ ~# p3 ~  s) a0 j
+ ~# \; s2 Q& Q#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
( y9 X; B# \' P#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
" M! Q" |" n+ Z% B6 V( T#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)3 @6 [) Y' X% y% B
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
6 M0 D. Z: l- r$ N) b! f: e' s1 F2 a! V
/* assign the tl som board LED-GPIOs*/, R+ s9 @$ |# W2 W1 a$ w, a
static const short da850_evm_tl_user_led_pins[] = {
9 O/ a2 g; e" @$ g        /* These pins are definition at <mach/mux.h> file */8 G4 J. Y+ ^: n1 I9 {4 m
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,6 k8 x3 _# b9 W8 X, E
        -1
" m) ]1 D* P3 T6 T9 s};
6 K, G* G5 J# y$ v4 Y* U0 \3 d3 L2 [
static struct gpio_led da850_evm_tl_leds[] = {0 @& U1 ]$ I9 @& ~" C
        {
4 s8 z- ]* ?7 j, H% W/ C0 u% A                .active_low = 0,; A1 q& \+ z" Z
                .gpio = DA850_USER_LED0,
2 k/ A) q$ F; A# l" m  I0 _; _                .name = "user_led0",
6 v% `2 r( @3 ~, R5 ?' ~                .default_trigger = "default-on",
2 t+ d2 ~/ l! k( l- r        },) f  \: x- N. y( n8 N4 p# r; i
        {
, e6 T/ T% D; j+ u$ z                .active_low = 0,( l% s! {  K1 B9 _- y3 a
                .gpio = DA850_USER_LED1,
! ~# t2 {0 W6 [+ l2 w2 B0 m% `# _                .name = "user_led1",/ X* t6 ?7 w9 d( i" i4 z2 }; @& S/ `# `
                .default_trigger = "default-on",
; u- z1 L  \& n$ s' w; K  j        },% X8 O$ ?/ n2 v1 `& i. c; v9 V" q
        {% U5 n! m' Q! D+ ^1 F
                .active_low = 0,
9 f) N: K; B. F8 ]& T# ?                .gpio = DA850_USER_LED2,9 [+ H  r  y) l! s; H
                .name = "user_led2",; Z+ _7 C" F/ u! C8 M+ z3 k& c
                .default_trigger = "default-on",
5 T% R7 t' }) B  J        },
' A3 _% p8 O& u7 T        {
; t, K  Y" J. B                .active_low = 0,- q! `% O  z8 X! n: D8 |( l
                .gpio = DA850_USER_LED3,
" c2 ]" |: M+ K# H                .name = "user_led3",1 R5 i4 y# _# o. g* P+ V4 r
                .default_trigger = "default-on",5 o, P2 E5 K. b4 W6 H) L
        },9 G7 }/ c2 L, G
};7 t# z, k/ x0 g

- X% k8 D- W; q" ostatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {4 x0 t9 p& T. c0 ^+ o2 N
        .leds = da850_evm_tl_leds,
0 f4 N1 ]" @5 b0 k/ l" h$ i' \        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
/ u* X: Q+ a/ B) E};
$ |0 ?. {' _6 Y/ A+ S$ U9 h
  y3 v, L6 K2 c) R; f7 n# Gstatic void led_dev_release(struct device *dev); X6 T! z. g  S# i  h
{
. ], C7 b3 v. Q};
% M. [, H3 M$ }: F; F4 p
6 l/ K1 U+ H8 Y6 U6 ^4 p( Kstatic struct platform_device da850_evm_tl_leds_device = {4 f+ Y! `* \- {1 E. w9 c# a6 A
        .name                = "leds-gpio",) h  x% J: V0 t* q6 h# D
        .id                = 1,
6 F1 H0 I' g, R1 [! ^        .dev = {' S- O0 _, s( `& B
                .platform_data = &da850_evm_tl_leds_pdata,) ?. P; a% \3 F1 p/ a9 E! F
                .release = led_dev_release,' b" \) S. S/ D7 Q5 f, f7 q
        }! d, w  s; P% t
};  o( S6 @# D$ E8 P2 }7 ?
' P1 x, R0 W0 x0 f
static int __init led_platform_init(void)
. R5 I$ @6 `2 y6 V+ m2 Q{. C# N6 k# D% H8 Y6 {+ v  T
        int ret;
& Z9 s( k6 e' S" ~+ {* I, a#if 0
' L$ l2 v) J+ t0 s3 P: G: q! D! K8 U        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
; I' |* x+ j+ c  R/ O" b        if (ret)
5 ], j/ D  ?/ q3 {2 g$ _                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ ?8 r- N) K: R% O                                "%d\n", ret);
# i) E) i, Y4 @# @* X5 E& n#endif
$ c" F* p" }1 I3 N        ret = platform_device_register(&da850_evm_tl_leds_device);
9 a% n+ I7 u% k2 K2 s8 M# o6 i        if (ret)
  f, ]" R% A7 v3 j- S/ a                pr_warning("Could not register som GPIO expander LEDS");, }! v4 H" C; }! W
        else
# ~) o# I- L6 g  q7 K4 ?                printk(KERN_INFO "LED register sucessful!\n");- H2 D' t& h6 r+ Q4 I1 V( }( s& t
" B% w1 ]0 @& o
        return ret;6 x9 L: o0 ^$ A/ K
}% S/ c  I  u- U6 A  Y9 _" B! Z

5 T, C- A8 ?/ b2 r5 P4 Mstatic void __exit led_platform_exit(void)* X9 `4 {" n$ D5 E$ k: }  ^5 I
{
9 L, t1 l8 I5 j: i! f3 N        platform_device_unregister(&da850_evm_tl_leds_device);: p3 H2 w+ x; a5 F5 K; z9 h3 E

2 H- `4 H2 s9 @- x) k. W4 g        printk(KERN_INFO "LED unregister!\n");+ `# ^' f; E7 i* L6 A4 d# W
}
9 Q. q% R0 u2 W" j2 a# g, _% Y/ q) C: h9 K6 T0 V
module_init(led_platform_init);
8 ]9 ?1 a* g9 a6 B$ L$ T6 g! ^- Lmodule_exit(led_platform_exit);. F1 t) I' A: P: l1 v

2 }6 F% e* p, M1 MMODULE_DESCRIPTION("Led platform driver");& c# o# k, A2 t. [6 O
MODULE_AUTHOR("Tronlong");5 ?* u( ~7 V: r3 v
MODULE_LICENSE("GPL");
/ o/ q3 E) x, g3 O
7 x# G4 B2 R) j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-12 01:44 , Processed in 0.037347 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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