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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
6 u# g$ z+ ]( s5 j/ _# n, m#include <linux/init.h>" w: K6 p  @% U4 {8 A' d
#include <linux/module.h>
( x6 |5 p# j! v0 l# m9 z& {#include <linux/kernel.h>( k2 g, S0 l2 b+ [: l! S0 s  h
#include <linux/types.h>9 `: q* S) o* I5 W% Q
#include <linux/gpio.h>
/ R* j* U) ^( W0 b# V" E#include <linux/leds.h>8 v5 w% j' H: s) d; |& S
#include <linux/platform_device.h>, z+ \3 j4 q" f5 ^5 h! ~

* X% x& [7 u: c) l#include <asm/mach-types.h>
4 q) I6 t8 s) c3 v( @#include <asm/mach/arch.h>
% J$ ~2 h1 d: r, d#include <mach/da8xx.h>4 ^( t/ }7 h! W& d3 V
#include <mach/mux.h>
4 o& c! M( w! e: ~3 e% U
, Z8 H( D' P5 P" S' u#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)- n$ r4 O9 P7 b5 M( K
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5): I7 @1 Y  _0 `* `
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)( Q2 J9 L  z) U" G. A2 a/ j
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)" o& s' C! {& y$ |# V
( @1 N. u& s# s( R
/* assign the tl som board LED-GPIOs*/
6 C9 R5 i- u" x) h6 ostatic const short da850_evm_tl_user_led_pins[] = {
$ z4 o1 L: ^5 a1 `8 x9 }. ~        /* These pins are definition at <mach/mux.h> file */2 @/ N! [/ T- v; G- ^$ {: p
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,' d! V: h8 B* d" K0 M+ L$ C9 c5 ]% Y8 F5 J
        -18 k1 T& d3 D) v4 l/ m0 b" t
};
- ^4 ?- G% L7 t; V% B4 |  k& Q* ~8 T" X, R5 X
static struct gpio_led da850_evm_tl_leds[] = {6 s( U+ X  i  n) p$ R* f( }: m
        {7 F! R7 w) h7 K
                .active_low = 0,& L0 ]  D% `& Y0 e7 s$ s8 W" ]
                .gpio = DA850_USER_LED0,
# M; ]. }8 f. U! c                .name = "user_led0",0 Y  \/ E) z$ O- m0 ?# j+ r( P. }
                .default_trigger = "default-on",
' ?9 v, ?- p& Y8 T        },! Y3 y3 v& C( ~) P# \7 n+ D
        {" v& B  `9 ?* ?) g4 T, T/ y2 M
                .active_low = 0,- r- T3 T$ [) @
                .gpio = DA850_USER_LED1,3 J; q+ u! ]  d: k
                .name = "user_led1",/ A) _: ^  ~2 n( s6 b$ I
                .default_trigger = "default-on",- ]. o  B, h& Q% i2 ]$ ?: ]( b6 |6 o
        },0 ]2 ]& Y# u, f5 G. O2 P
        {
! ?& g2 t! y: q                .active_low = 0,
! A! ~( B" [7 H1 J2 ]3 _                .gpio = DA850_USER_LED2,
$ x7 o$ g: q1 P$ L- r2 f8 V, W% |% ]                .name = "user_led2",
5 ]+ B6 G8 p. ?' Q) U# |  d. S0 h                .default_trigger = "default-on",0 L, U; w! v* E/ E
        },
0 ~. i' R9 z8 z        {) b5 r9 _2 ~) A3 C* p) X+ p* b1 b0 R
                .active_low = 0,* ^" T% B- N! Z+ D
                .gpio = DA850_USER_LED3,
" C/ o) h6 ^9 [, v                .name = "user_led3",! D) w  x4 l/ W: N1 t
                .default_trigger = "default-on",
* Z% }+ Y: ^/ m3 F- Z0 L        },
) P' I: t6 ]0 s7 q8 {};, V6 J9 p6 k, d2 ]3 H

$ W$ c, i; h9 ]8 B; Q5 L" {static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {( z$ I. s. R. F) ~
        .leds = da850_evm_tl_leds,! l6 k5 g$ A  F9 o
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
0 {4 T# j& c) Q};, @3 C3 \0 ]; c7 l; h# ?
7 S% {5 R$ d& x6 e! z8 v; d+ d6 L6 \  y* r
static void led_dev_release(struct device *dev)/ K- }" p$ j- Y' E5 c# T
{, f$ L' f- X( [! h/ N3 v7 i
};
/ ~! p9 `+ [3 ?1 Y* v; `
6 f: i- l- L. }) A- K3 _5 ostatic struct platform_device da850_evm_tl_leds_device = {8 f' M8 K8 l/ a! w- `; P; M
        .name                = "leds-gpio",- L2 m' p3 }" j7 ^+ n9 t
        .id                = 1,3 ]2 v% k4 F. a- [3 H
        .dev = {
  [9 ], P3 ~0 S5 @" \/ L                .platform_data = &da850_evm_tl_leds_pdata,
: d% `) U6 w% f; V1 R) [; R                .release = led_dev_release,! X" c7 h5 c' k# o& M* F- ]
        }0 r3 q0 N2 D9 i) m: T
};5 P/ z& R& {* T
2 H+ H+ m  }+ W5 L& v
static int __init led_platform_init(void)  v- W  C" h" _2 ^
{& i% p1 m1 n& @! r2 s8 o6 X& ~
        int ret;4 x1 [) ]" z2 H7 i/ p7 Z+ A, }7 ~  \
#if 0
4 {; T5 {* ?& \8 b  {* W        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);, o' N( i( |6 _! J/ Y& U
        if (ret)
* `: B, t( ~* }" e+ {                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
$ R5 u9 D  G6 M( e! Y2 f. j5 H# }( e" c                                "%d\n", ret);% h( d* w$ y" C6 l
#endif
. Y/ y, X1 m4 V# ?) g) T2 P        ret = platform_device_register(&da850_evm_tl_leds_device);( c" j* }2 T9 J8 q; r
        if (ret)0 E9 D; X& X+ \1 Q! V- a9 W
                pr_warning("Could not register som GPIO expander LEDS");6 s' @# Z9 X, X0 [+ r# C/ I" J
        else/ O- H: D8 t7 i+ o0 }$ {  F
                printk(KERN_INFO "LED register sucessful!\n");
7 f3 n6 p: v, N) p
- H' [4 F3 R$ g# p8 R        return ret;
9 z5 o) ?* a$ u: Y$ P  F' }}
) u* {) }0 u" V* b! i' K
; _, j+ L3 A  ^" v3 w4 G0 \static void __exit led_platform_exit(void)
, T3 p5 G9 r* |4 d$ O) g" B7 j2 D{
" k7 ~; G! e8 O( \! Q; g        platform_device_unregister(&da850_evm_tl_leds_device);
' u) q. ~1 k7 ^/ R- d( s' N+ v4 l8 X* W
        printk(KERN_INFO "LED unregister!\n");
# w$ X9 z2 n* j) y& h0 `}
0 }9 I/ E: r+ n1 E9 o; V  d; }! v0 D
module_init(led_platform_init);5 c2 e+ u2 j5 q. z0 }  l$ J1 G
module_exit(led_platform_exit);
" ]! y8 M1 X2 R9 ~+ Y% r  I
2 `1 ~* s# H& L2 d. jMODULE_DESCRIPTION("Led platform driver");7 _( B3 M0 w, y" T4 Y9 ?
MODULE_AUTHOR("Tronlong");
) f% A+ @' X& |. ?MODULE_LICENSE("GPL");5 r3 C- @2 x" W5 p
; u5 N" Y! }" s5 E7 M. U9 g6 Q
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 19:43 , Processed in 0.042776 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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