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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) v/ {3 t( O1 I( Z/ M: k) v#include <linux/init.h>
! ?+ B; ^- [! a+ E7 s1 Q" z5 e& F#include <linux/module.h>
5 a( S5 ?0 X  k3 M$ b#include <linux/kernel.h>. A( T1 @" ]  j3 f
#include <linux/types.h>
9 c( e0 E7 f+ c' p4 X, X3 h#include <linux/gpio.h>$ ~+ a  n4 o# V
#include <linux/leds.h>
9 j# t, J/ O% _2 r* i#include <linux/platform_device.h>
! |, Y0 o; Y' o4 q; f/ m; `1 v. ]% @! v/ m4 J( h: l
#include <asm/mach-types.h>
9 g+ j/ D# U& J#include <asm/mach/arch.h>
; ^0 D( g+ A) J, y) \$ o" E& B#include <mach/da8xx.h>6 [2 C/ e6 e% T
#include <mach/mux.h>3 M9 C9 S! }/ C3 s3 R  c+ ^/ E

# k) V3 c& Q, o, Z. c& z#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)* j* ~3 g! f- u4 C+ E
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
4 O/ q! Y, D- A' D#define DA850_USER_LED2        GPIO_TO_PIN(0, 1). D6 ]% f: F9 H8 w! Z
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2); `" n2 Q2 t5 n: h& q
! \! N9 ]4 ~1 j* F# c$ t
/* assign the tl som board LED-GPIOs*/7 U& \/ i4 ~" Q: j1 [& W( T) o
static const short da850_evm_tl_user_led_pins[] = {# Q1 e) i* s6 j; |, h  i6 {
        /* These pins are definition at <mach/mux.h> file */8 b. D4 z& j! \( l
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! s- y, a' p$ d% {0 x: f        -1" @' Z* j4 Q& E  h( l2 D
};6 b; q* l" s& s* M+ j/ u
5 X' {- Q' q* C2 W
static struct gpio_led da850_evm_tl_leds[] = {( X$ L6 c$ _$ W+ d! m
        {
" w( u; D% ~) ^4 Q! g, g                .active_low = 0,
1 }+ P6 [! y. n/ h                .gpio = DA850_USER_LED0,
/ r# i" Y: J2 _0 s: e2 X/ s                .name = "user_led0",% y! ]5 G" Z: O6 \, A- O
                .default_trigger = "default-on",
: K* p  [- p! _1 @: Z9 C9 m$ R        },* W+ V) T) V% \. g
        {/ ~6 D# H3 ^, ]5 c4 ^; e" v
                .active_low = 0,5 L7 E7 g+ ^5 ?+ @3 S% N. M7 B
                .gpio = DA850_USER_LED1,
9 i  b6 Y0 ^0 A                .name = "user_led1",! V& _8 m' W4 p4 V
                .default_trigger = "default-on",
* t0 u3 _; R) k7 t1 G+ l        },
$ g3 c/ p+ B- M! K) L- z: f        {
3 R5 f8 Z, b( n8 m, i6 O- I                .active_low = 0,; T9 ]+ a5 Y- G- e6 d1 \$ w# {
                .gpio = DA850_USER_LED2,
7 e' l( B1 k. c: ?                .name = "user_led2",; Q& o6 M& D5 w$ J* N5 R/ O
                .default_trigger = "default-on",
* B/ d' `! c  q2 Z9 h5 Y        },
# F0 W$ w1 }1 h7 T# e        {
2 \% n: u1 s) [+ `/ U* N9 C) Y                .active_low = 0,5 ^# T  y6 ]! J  I. h" ]7 I
                .gpio = DA850_USER_LED3,. Y8 E7 o" a, n) o9 P' d
                .name = "user_led3",
# Z! A, K+ P  _; Q# P- E                .default_trigger = "default-on",; l# L5 R4 H1 F
        },
& f" |. {6 d, I$ M};
0 d  n- x. i$ @$ l. E7 ?1 \7 y7 ^
/ D; E. q7 B9 R) @# p2 B: nstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
. @4 R- x+ ?3 i( X; A$ g8 h- J        .leds = da850_evm_tl_leds,
# y7 ]% L/ h  i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
7 q: _# k% h+ ]# k( U8 r; N};3 Q4 ?+ n7 I$ @4 Y
" u' \" ?! M: C9 i9 u2 @8 t( j
static void led_dev_release(struct device *dev), p6 E, m; C8 E, L. U' [
{1 }3 U( a7 Q  `$ n. f5 l# C
};2 a  W" V" c! j* c9 M" K

/ L) b( Y$ @. R9 \- ?2 N. gstatic struct platform_device da850_evm_tl_leds_device = {6 `4 w" S! i' @, M. r1 S
        .name                = "leds-gpio",
3 a/ Y9 v( x' a! V        .id                = 1,
) \* \6 l' a; k' c4 z0 A1 O        .dev = {! U) U. ^( f" j" @3 S
                .platform_data = &da850_evm_tl_leds_pdata,
  J5 f3 t, j* {3 ~4 J' `                .release = led_dev_release,. q- K7 c% j9 j, U
        }
2 b0 J' y  a8 @};  }  x' Z( }, o& o. U
" K8 K, m7 J$ j$ S
static int __init led_platform_init(void)
" C6 G. G) Z# ]  m4 p{
3 q6 u: g2 ]9 h9 K& F) G        int ret;
' M3 ]& r5 y( c5 j6 O& q$ h#if 0
0 D; @. \3 F7 @9 ?$ `3 h4 Y        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);  [3 u' _+ c5 d4 f
        if (ret)
. o1 w$ p. i0 i6 F                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"& R$ I* x& t* Z/ @( N
                                "%d\n", ret);
* D# p1 n; y+ g, r2 |* t; ]#endif
5 X% X) P, }2 g0 K+ K        ret = platform_device_register(&da850_evm_tl_leds_device);
+ ?. F3 D& C7 p' n% }        if (ret)$ ]& T7 T9 u+ y! J$ R$ O/ }
                pr_warning("Could not register som GPIO expander LEDS");  A# O4 {% J8 W% }: v+ D
        else! j- z. y7 `3 H) p
                printk(KERN_INFO "LED register sucessful!\n");8 o& @9 B$ k( m3 R

( I# {. u7 g$ g2 h        return ret;# t+ `. s# P. _: L3 G' i: ?) R
}
% z* ~. z/ E" C) P8 _) G
' p( Z& `: d7 V$ X2 X% z/ z4 ?static void __exit led_platform_exit(void)$ ?! f* M3 C$ l
{0 Y4 |& Y' w9 @" S: p
        platform_device_unregister(&da850_evm_tl_leds_device);- ]% v2 m6 w3 f4 J0 s

& t9 R) Q) N* W8 H        printk(KERN_INFO "LED unregister!\n");, s9 Y4 G- ~, ?/ G3 P9 s* N9 S) b
}6 [: \0 d; b5 @  W
) n" B' E; C& B: n5 [8 W% A
module_init(led_platform_init);0 C- N# n1 \# S6 m) T5 q+ `
module_exit(led_platform_exit);, I) J' T+ x' `& V/ @) P

3 I: @2 i7 @! cMODULE_DESCRIPTION("Led platform driver");, y5 }# q  B2 V; u9 q3 a: y3 a9 j- G
MODULE_AUTHOR("Tronlong");
' T+ Q8 u8 k% b0 a2 K& p/ F8 R# lMODULE_LICENSE("GPL");2 D! H( \# u0 h+ c. a4 ?$ r
) n9 e# z, L  N7 ?& D
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-11 05:24 , Processed in 0.038679 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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