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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。4 y8 |1 m) _, `5 z- S
#include <linux/init.h>
" U, v- J6 ^0 {8 q9 B$ o#include <linux/module.h>: I% S6 z, Q0 K1 f1 y" c
#include <linux/kernel.h>& b" D- A: Y. q5 h2 S6 f  W
#include <linux/types.h>
7 G2 N, u& y! I5 R1 P1 [#include <linux/gpio.h>+ d4 P* j) j+ n, Z  J6 \
#include <linux/leds.h>4 j$ }/ n' b( Y" @" H
#include <linux/platform_device.h>
9 U; y8 i. A6 l$ v$ J1 }: T3 V7 n$ x3 F" M9 Y! t- k: H; _9 S$ m* e& J
#include <asm/mach-types.h>5 v5 w% |' o0 w0 U- W
#include <asm/mach/arch.h>+ H- w7 u) B" J0 d! u. a
#include <mach/da8xx.h>* n7 b; `* r) L0 o) A
#include <mach/mux.h>
; D+ Z% M5 z$ }6 \
$ ?+ `, k( E6 k' X3 f* x#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
! [8 e7 l0 S; o: S# C' w* ?#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)# Z1 D9 M5 B3 W. n5 ~
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
" D, W$ B0 m) g! R: t9 X#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)5 Z( @3 _' `( ^# ?. m
6 ^0 u2 [0 |7 ^! {
/* assign the tl som board LED-GPIOs*/3 z; ]7 _3 k7 [- ^) r
static const short da850_evm_tl_user_led_pins[] = {
1 R$ u" j& r2 [- f7 ?9 Z        /* These pins are definition at <mach/mux.h> file */* `8 X* k4 f0 ]4 R! H& T3 M( \
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
- o( L' n" c5 \        -1
3 N& Q  A; C. }7 g% ?! b- n4 X. e};
4 ]+ I: r6 g- i* e  T& y
" W7 r; }5 L( f5 \static struct gpio_led da850_evm_tl_leds[] = {
& n* a0 S" h) ?5 y; l* j5 T& H        {% U+ s" _! f/ o+ [( Q/ B: ]3 v
                .active_low = 0,( P7 D9 s% {7 S
                .gpio = DA850_USER_LED0,
) U) a2 O( b- y' X                .name = "user_led0",2 c9 {4 v* D. r0 Q% Y( ~2 z
                .default_trigger = "default-on",
' y7 ~' l, B0 k$ ]* z        },
/ i3 k9 K. ?9 ]( T  }, t# z        {7 L" |% r# X  [- L2 }) P, q
                .active_low = 0,/ L5 n) {# v6 s- X9 k
                .gpio = DA850_USER_LED1,
# @6 ?; d! \! E9 C% J+ V                .name = "user_led1",
2 I% u1 r: D, }; [& m                .default_trigger = "default-on",
: i0 ~8 v- k- J        },/ Z7 E3 S+ @- u  K
        {4 o* g& r1 m1 F9 X: k
                .active_low = 0,
& v3 k: x& T% M4 Y! U2 }. [                .gpio = DA850_USER_LED2,- j8 i/ B8 Y+ N/ d, n2 L! O) R
                .name = "user_led2",% W( A3 n3 e- p0 e
                .default_trigger = "default-on",
5 Q& ~" F* Z; q  k1 m        },8 y; K" Q+ ?) Z9 a  z7 v
        {
) H# {9 l2 A  \& F% E( S                .active_low = 0,
. ~* S6 q9 k" s2 F; @# I                .gpio = DA850_USER_LED3,
+ T" w1 m) Q" x9 L1 P1 I                .name = "user_led3",
4 l  a0 @* g, x, ]  c) u9 q( c                .default_trigger = "default-on",
$ B8 X( g- A" V; l        },
5 O0 D" x: A2 j8 B};5 t6 X; Q/ r2 e- l$ Q

& z9 I2 L- F- A) {% v1 Y# c- Istatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {8 G0 t$ e8 H( c& L) e# S$ A
        .leds = da850_evm_tl_leds,
( x2 Y0 I" |/ M& I  k' }. V- H        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),3 p: q- t3 j0 f, a3 J6 f! _1 `
};
- K! l( D. o. U6 c0 m8 O( C5 ?+ N6 X
static void led_dev_release(struct device *dev)
% _" w/ H: C$ C+ N$ M, U2 W{
- j5 {% h& O9 N) `( _# Z/ _& O};$ J9 s% M" [# e! T# d0 |6 L6 y7 G
% W9 S+ }3 {6 ~% ]
static struct platform_device da850_evm_tl_leds_device = {
" w0 m. {5 H3 G        .name                = "leds-gpio",. g* `2 W; e; O* U6 l' ?# t$ b
        .id                = 1,- j' I+ L. l2 v- w$ A
        .dev = {
0 r1 l  C: K$ K, w, X0 O- W                .platform_data = &da850_evm_tl_leds_pdata,9 w& s" F& L" d8 k3 E" _
                .release = led_dev_release,/ z$ L' l6 K1 d9 p- J% U9 |
        }
& P/ y) U4 {6 c1 U/ \};3 o- i+ ^& |) Q4 [

" _* G) s4 A: ^6 B4 ]. ?) Kstatic int __init led_platform_init(void)
+ p. _- k% L  D7 T. S  g6 K{
& C: o0 U  C# L5 C8 ~9 j' N2 K        int ret;
# Z, A- ?# }+ G! i#if 0. }: I! N7 ?# ~9 j* v- ?
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
2 z  x# X" M* i) F2 J& j; L  V8 \9 ]        if (ret)
& U" m- C7 g5 f- N) b; x$ q" W                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
& _! N) t, ^) z+ A5 P( p+ q                                "%d\n", ret);. F3 e+ k: }$ V  W2 q! f
#endif, P# a# P: W) q. f* A
        ret = platform_device_register(&da850_evm_tl_leds_device);
5 [& z0 x" S& j8 q        if (ret)8 U; S6 B4 X* C6 I, r; `
                pr_warning("Could not register som GPIO expander LEDS");. v" [" @- V) o. x! Y/ I' ?4 D
        else& k9 f) [: o3 \4 d- ^0 w7 C
                printk(KERN_INFO "LED register sucessful!\n");. K2 F6 h9 `5 M' A: m6 n, T
5 T# o; U, ?( I
        return ret;- G! o/ h, A/ C
}
. Q7 @. A3 u6 D, _  u7 x4 R8 O, [7 }( a2 i) e3 v  l
static void __exit led_platform_exit(void)
" w4 y6 c) ?, I# g( {% {+ k{" X; U: N# N6 p, _
        platform_device_unregister(&da850_evm_tl_leds_device);
) ~" U0 J+ _5 c. g$ e& n: T  x
% ^, F5 M* e( R: {$ s, L. U3 T        printk(KERN_INFO "LED unregister!\n");
  |$ l# U9 I; B" t: h/ v}
) g( h. r% C/ E- F" g9 V+ K  W9 @! f' g% J3 O8 q: T0 d, h
module_init(led_platform_init);( l) k) R% o0 K4 P- q6 S8 E% |
module_exit(led_platform_exit);
7 E3 N* P3 L* b, }
: P- a; r% ], {MODULE_DESCRIPTION("Led platform driver");
1 j5 ^  `& h4 j$ {/ `MODULE_AUTHOR("Tronlong");' W$ n/ t: T5 F0 S
MODULE_LICENSE("GPL");0 r. e' L; i6 s& J9 R

* v7 H9 b( U1 P1 W7 r# F1 P5 @, H, O
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-1 14:23 , Processed in 0.038249 second(s), 24 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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