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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
- p1 I$ D6 @1 o  W/ L: L' R& j#include <linux/init.h>
8 |9 o# V& o2 y) U7 p3 k7 b" |#include <linux/module.h>. e6 ]) |8 V+ a& d0 Y! h, w! Y
#include <linux/kernel.h>( A7 r6 ^- C: V
#include <linux/types.h>
. D$ l/ l( G+ l. n#include <linux/gpio.h>
7 ^8 l& P+ \6 I) V2 T#include <linux/leds.h>/ X0 _( R4 ^! X& M& K
#include <linux/platform_device.h>
" B: d8 ?& H, o6 b) g3 J5 b; l0 G; f  G8 N3 m* Z
#include <asm/mach-types.h>
& Y/ Q5 H3 y0 i- |#include <asm/mach/arch.h>" q. i( [; o4 ^8 g3 `
#include <mach/da8xx.h>
) C. N0 B2 K  z3 z3 S#include <mach/mux.h>$ c$ C+ U- w) ?0 t/ Q% H

3 K% a. Z, Y8 _#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)# U' R- @! V+ B( U$ y# n5 T* c- C
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)3 B3 J8 |& T! e8 u, d0 x- r6 y
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)
8 s, H* I" Q) [#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)
: z( h8 V# {$ F6 I& f6 w3 ?
7 {2 \5 L6 ~# k3 J  f/* assign the tl som board LED-GPIOs*/
7 R) z) H7 ]  b% c1 r0 ?static const short da850_evm_tl_user_led_pins[] = {
, X4 {3 {( ?4 p% j; e        /* These pins are definition at <mach/mux.h> file */
. o' s; y6 A2 {5 ~9 }3 P, O        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,4 W) g' f$ B* c" m) l
        -1
6 w* I% K4 f. n- V: l};
. |+ O4 F$ r0 Z2 i. s& A+ b
- Q" |: o; ~6 _4 Hstatic struct gpio_led da850_evm_tl_leds[] = {% T9 y1 @1 Y5 Z
        {
3 Z, `' M. i7 g                .active_low = 0,
: A, d7 H8 Y# k' X+ A/ m+ z: B                .gpio = DA850_USER_LED0,
, ~3 P( Y+ B; [2 e                .name = "user_led0",' M4 ~+ {6 \6 X* R
                .default_trigger = "default-on",1 `' Y$ F& n& C5 r
        },5 u- m7 z/ q$ c7 R# ~) B: y
        {
8 A" l  `2 o/ U0 f5 J3 G$ z                .active_low = 0,
( W5 l% b* W4 Z                .gpio = DA850_USER_LED1,
& p! }. H0 n; B( t8 E                .name = "user_led1",5 E2 u+ Y) }' P1 f; H/ x" c
                .default_trigger = "default-on",3 _* p8 _3 G+ }# e9 K
        },
. C$ C" [* H8 s1 v, [" N$ e) k        {
9 \% ]" \& G# z! T/ o, @7 }  J                .active_low = 0,3 N0 X6 D& X0 w7 O$ d
                .gpio = DA850_USER_LED2,7 P! W  o1 e) A* ?- l' d- F
                .name = "user_led2",$ ~) L4 k1 g$ H# s/ e1 r( y
                .default_trigger = "default-on",- x( z# U: e) N9 u" v
        },* G4 Q7 ^- i* o8 g% S8 D( p
        {" z& b9 P% R7 J3 w1 N9 {5 c* w
                .active_low = 0,
  m- i7 U& F, J! [% n6 H                .gpio = DA850_USER_LED3,- f2 U9 W- t+ O( y7 K
                .name = "user_led3",
" _1 M( t4 J& x' U* [& ^+ Y                .default_trigger = "default-on",
+ n" C% v/ ]8 o- v        },
/ B8 M9 v/ ^3 U( E};
9 M' P0 h" C3 L/ ]9 t) m
3 q4 _9 C+ X! Vstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 t) _7 H9 ]1 v! y0 b4 `; g
        .leds = da850_evm_tl_leds,- \' S7 K% P8 \( _( w
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),+ z+ V  A" `, `* b
};) j5 L6 N: `2 V) ~) F' ^/ r8 _% N
4 a. ~; a8 {8 x( ~
static void led_dev_release(struct device *dev)
3 Y! O/ ^6 v2 s& o3 k{
  U) _- X: P8 \; A& d};) u# A# @+ o8 @& [( }' y, s

9 Q' X4 y' a$ k* B* Wstatic struct platform_device da850_evm_tl_leds_device = {
' g% _- g" g8 n9 F' E! Y  Y& d        .name                = "leds-gpio",; n7 `/ I$ m# Q+ E' f1 j" i$ G
        .id                = 1,
2 T: E" d% o4 j        .dev = {
2 t$ `! v+ E9 u8 }8 V                .platform_data = &da850_evm_tl_leds_pdata,; I' E  W9 R, l) G2 E7 m
                .release = led_dev_release,2 i) Z3 e* z5 f' R4 d8 z
        }! F7 w+ L, _! E% W- a9 m4 @" g
};
; _6 B, l/ e6 o* J4 l
, x9 d6 y" i+ E. ~/ Q7 ~2 v# Kstatic int __init led_platform_init(void)0 I# W, H, ~3 m6 x2 x
{
* L0 V. t2 U& `5 U4 c2 M5 @        int ret;, d  A) X( L6 T% Q2 M# M# w
#if 0' t- N) B$ D6 C- Z
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);% x* c8 e( _, c. o4 n
        if (ret)5 T! w# Q  Y+ @+ a7 m+ W% S0 v8 ~
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
+ A. N2 C  S& ~7 Y6 s                                "%d\n", ret);
8 G/ _1 a, d! z7 T" q#endif
8 b7 A$ p( y( V- g' Z3 P        ret = platform_device_register(&da850_evm_tl_leds_device);
7 v0 F+ _: l$ i- C8 v- r        if (ret)
# j. U4 R$ V6 {) N) \! N: z                pr_warning("Could not register som GPIO expander LEDS");
& z5 w( a- s1 I        else
5 J, f3 G+ q3 q, r                printk(KERN_INFO "LED register sucessful!\n");
4 P( V9 G! z1 u( q. m% V, O7 a
' c3 k  @# t9 R- f4 Y4 ?        return ret;; }, N6 U: w* a& v2 |
}1 w0 O) w+ X0 F9 b9 D

4 V5 u- }5 ]5 Z& P, d6 @( D" j9 Rstatic void __exit led_platform_exit(void)
- u/ Q) n) V) ^# \7 A+ n6 P{0 n3 J5 p: [! r0 ]4 c5 p8 W
        platform_device_unregister(&da850_evm_tl_leds_device);
5 q1 o, ?) q* p  @
& C1 B' V0 N2 S! k: s! b" J        printk(KERN_INFO "LED unregister!\n");" c! G+ I: e% ?  P  P: I' Z
}& u  |- u! c1 H+ ]

9 S& z" d+ F. vmodule_init(led_platform_init);
& |# Y/ q4 K4 @module_exit(led_platform_exit);
: F6 v% {8 i1 e/ w! M: X# \4 N
) H' r4 B! x/ B* I9 D. ]MODULE_DESCRIPTION("Led platform driver");, |1 s9 G: r& x8 F
MODULE_AUTHOR("Tronlong");
" H: r( M* {2 J0 H5 o6 sMODULE_LICENSE("GPL");, c) ]. D, ~7 `- \" s, v

+ ?3 w  h2 p7 z1 b
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则


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

GMT+8, 2026-1-9 10:28 , Processed in 0.039406 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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