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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
) N/ W' k  z0 v- t1 t( _#include <linux/init.h>
6 Z" r% q9 z0 p  B#include <linux/module.h>
1 d- U5 b/ a6 Z& f1 Q#include <linux/kernel.h>
; j2 p" X# J) ~  i, m#include <linux/types.h>
; ~+ y& {; z- }" S#include <linux/gpio.h>
& P) y1 p5 G  k  J' y#include <linux/leds.h>
0 ]& k8 x7 ^: o5 l#include <linux/platform_device.h>! F1 X( |; @6 K, U% f6 w8 A% J) ?

' N$ y# U3 e) [( N#include <asm/mach-types.h>
! k0 v3 ^6 f# ?, n$ o#include <asm/mach/arch.h>& n+ \4 e: U1 j% Z+ T$ l( k7 B
#include <mach/da8xx.h>
" b$ z0 R; _, [* z# D. T! U) y#include <mach/mux.h>
* ^/ o4 Y# W: f- h2 ]) F) V9 z/ P6 `$ v8 K5 b( A$ h
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)% o: Z# N) z/ d8 h3 w+ R
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)
6 x8 }+ L/ A1 `, X  q; d#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
. k9 S& [6 R& Z#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
5 J  _- V# C: u, U" Z' s  O1 T+ C
/* assign the tl som board LED-GPIOs*/$ Q  H" U* _$ t6 g$ _- X# E! E
static const short da850_evm_tl_user_led_pins[] = {! S+ O; E0 W, n8 k' Q& p  N9 ]
        /* These pins are definition at <mach/mux.h> file */& g1 F" ?& M* U) D9 `" k
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
" O2 U- ~5 p/ q' q        -1
# I1 _5 q% Q# D) H4 Z};
4 h* [# H1 \- d/ q* x) z
/ e! K. x) O* H) jstatic struct gpio_led da850_evm_tl_leds[] = {
/ G0 q, D& A. Q* @% }! G        {
- ~7 R: }# r: q% v) p6 f                .active_low = 0,8 s3 y/ D; d8 ~8 K
                .gpio = DA850_USER_LED0,
* F; a2 a  v" b7 K                .name = "user_led0",- c8 s" u# q& H/ P: E  t
                .default_trigger = "default-on",8 q! l; P7 D2 a$ ?* J9 R$ S
        },+ Z, Q+ h' |. a* R  W
        {0 I5 u9 _6 I, ~% v4 R7 {
                .active_low = 0,
% |9 c) _# E5 ^- |$ a; {2 E( s& O                .gpio = DA850_USER_LED1,! s' r: V9 p( R# H2 Q2 Y
                .name = "user_led1",
# a, u. X1 m& S# O                .default_trigger = "default-on",
) U4 i" _" S0 {7 g6 J        },
% X) F3 @* l2 ^3 g" p2 I7 q        {0 X) K) c7 t* i! [+ j* Z$ M0 K
                .active_low = 0,
6 r* f0 K) I6 C4 W6 `0 m( T                .gpio = DA850_USER_LED2,. b0 e3 b6 x% u$ c, C/ h% [2 F
                .name = "user_led2",
. ?+ w# n. n& A" Z8 b, W7 p$ ?                .default_trigger = "default-on",& H% e. v" m. \' p6 b
        },( l( V. i8 i) h# Q) t7 F8 O5 H
        {! k* Y/ N. W( Z; Z8 W! a
                .active_low = 0,
0 N7 J; U# |; Z# q5 k                .gpio = DA850_USER_LED3,
1 `- G) z, t% [1 c. b. T0 D2 d2 I                .name = "user_led3",
" o! n9 _! b0 v4 Y) P' z                .default_trigger = "default-on",
9 I4 F- \5 Z: e% \$ }, N' y        },% v  T$ m3 z5 j+ K' Q+ n6 C# f
};  r9 A, l& w% q* I0 D: ~

( V- D* w9 K' R  q- m8 T  n% Xstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 K. {6 [! N3 ]9 b$ ^/ a: Q" ^" T9 D        .leds = da850_evm_tl_leds,
( \8 M  B: _7 F1 `  e        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),( |+ x* {* v# G% m7 c, |
};
: v% d/ V8 R7 ~7 }) E
# i2 Q, n# e# |3 X; ystatic void led_dev_release(struct device *dev)
( ]/ p, F) s* O" P9 ?* \& K5 i+ B{# a  T3 \+ Y$ `: _+ D" V
};
. c7 C. v1 U( H! \4 z/ Y
/ Q2 {9 Q8 r+ pstatic struct platform_device da850_evm_tl_leds_device = {' X% {  U& b2 [2 j- Q( C- {
        .name                = "leds-gpio",: p% }, |  [- v, x9 V! B
        .id                = 1,
" |# B8 q9 ^  {3 k' H        .dev = {( I" n/ f( I% @3 C% A5 w
                .platform_data = &da850_evm_tl_leds_pdata,& Y( r& z. Y" I  \- h
                .release = led_dev_release,
; I& F# v5 u$ T/ N8 e        }) e4 M6 B  r" ^
};
* m" d& }' ~+ m. [  A7 l0 N. z
' e' D/ J4 R3 r9 K1 N4 Qstatic int __init led_platform_init(void)
9 T( q6 B4 a. M9 `( d{/ o' y; E# k4 e1 v9 g7 [
        int ret;
5 o. o1 T7 J8 G4 c. }# b( w/ j, v#if 0
% g) e" @5 B, t& q3 x, i8 S: {        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
1 H+ k! w/ G3 l- ~        if (ret)  p7 F8 _7 V$ V
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
! O6 G' r0 j( m1 e/ R                                "%d\n", ret);  p% H6 r7 f1 ?) f+ {# b' t
#endif# B9 N/ [2 j* [5 _
        ret = platform_device_register(&da850_evm_tl_leds_device);
" [: ?) f3 ]% r4 a        if (ret)
5 K7 T" l5 {) K5 m+ e6 ]$ e                pr_warning("Could not register som GPIO expander LEDS");) J$ V) Z4 k7 B  H: n# u
        else
3 n) m9 y2 s- f! l4 `- Q: [6 \                printk(KERN_INFO "LED register sucessful!\n");( ^$ H( @5 x1 z4 K! i

  f" e2 B) ?+ K; V: @# E( T        return ret;. w8 t, V: V  _
}
. F' }3 O, h  f  e( }' }+ |
/ @9 u! b3 f' C, Q2 Hstatic void __exit led_platform_exit(void)( V0 Q! q; O3 K, i- D4 T
{6 q4 v0 E; M* I7 @. \( a5 s
        platform_device_unregister(&da850_evm_tl_leds_device);4 [' `6 i' @2 j5 E4 i& g7 v

( Q0 P/ [+ J4 ]$ a8 c        printk(KERN_INFO "LED unregister!\n");% S+ _. C) a) L$ M4 }  F
}
, {- q0 j8 U' j4 o' ^
0 Z" h# c- c# |1 L& Wmodule_init(led_platform_init);
! p; B+ w8 N! a7 n5 e8 P3 Ymodule_exit(led_platform_exit);
( P/ B  z- `7 K5 Z% m  [8 b7 ~9 z8 }4 f4 C, ^" K6 N( J
MODULE_DESCRIPTION("Led platform driver");9 f4 N9 |, l  z" ~
MODULE_AUTHOR("Tronlong");1 y; u$ c, H, m8 X+ P
MODULE_LICENSE("GPL");9 a% @1 p9 ]. C4 e

4 ?( x, e1 A% V- R9 p: o
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-21 02:22 , Processed in 0.038007 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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