程序注解 - OMAP-L138 - 嵌入式开发者社区 - 51ele.net
设为首页收藏本站
点击跳转“创龙科技服务通”

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
7 H$ ~3 d8 n" y! _. z#include <linux/init.h>8 X0 ~- k$ C) Y- M- V9 ?" U
#include <linux/module.h>4 ]7 V9 {' V( Y+ }
#include <linux/kernel.h>
+ T9 }% z$ c. j6 }#include <linux/types.h>4 J) @: j* [$ f
#include <linux/gpio.h>
5 m7 `9 P5 y/ M8 Q! O. V& n" @# ?$ C#include <linux/leds.h>
, a' b, W. a" r/ }) H#include <linux/platform_device.h>* t4 `  B/ K* x. j* U* \% Y! A

3 w$ t! @  D5 s- q0 G6 b; N#include <asm/mach-types.h>4 x; g  O2 X' G" A/ m" Q
#include <asm/mach/arch.h>
3 [" O( \! M  l8 j( f7 K& c" E#include <mach/da8xx.h>
2 \: F7 @0 `0 b" R8 T& @#include <mach/mux.h>. @2 Q2 H+ |- i& E$ Q) \% Q& d
, A! M# P( w# L3 }
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
" @  [/ n$ p2 J+ q#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)6 I$ k+ W# q5 A9 a. y! a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)0 Q; P) d9 W  o- m# @+ V
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)0 \+ @7 l' T4 e8 q- e
) H) f2 t: y5 m2 \  B2 d
/* assign the tl som board LED-GPIOs*/
% b- D- f7 @5 F' c: wstatic const short da850_evm_tl_user_led_pins[] = {/ D/ A* m7 W: }
        /* These pins are definition at <mach/mux.h> file */3 h! h& G1 \  o8 |
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ O. d8 }! M, U        -1
3 I/ W0 J3 Y' N7 J6 l};
# M& b6 l% B, @. t) r5 O6 a( @, z9 u7 C6 g1 v
static struct gpio_led da850_evm_tl_leds[] = {" h* z+ T% i  V# g3 }$ z. A* D
        {
: ]3 q  b7 f9 s5 m( r                .active_low = 0,
! C6 d: A0 h. [                .gpio = DA850_USER_LED0,- ~* Q, Q' i" `$ J2 v2 d
                .name = "user_led0",. @4 G, d. f. C' F$ [) x/ a
                .default_trigger = "default-on",
8 i6 `7 M7 h4 H        },( l% E' w# V: r6 y3 ^
        {
* i5 R9 s4 i6 p/ n- y9 I3 f$ Z7 E                .active_low = 0,+ j) K* I- {( m' O* w0 b6 ^) a3 L/ t
                .gpio = DA850_USER_LED1,
; G/ C3 o3 g0 e                .name = "user_led1",
& t# M- [  H' [: n1 l0 k3 W4 x! G                .default_trigger = "default-on",) f1 ~; D8 g5 M- D" c
        },0 I9 L5 l& T' D8 @* {3 o, S- [
        {: X. Q$ Z9 U. v
                .active_low = 0,
8 y2 U, {/ s5 \" }7 v" f- ]# h                .gpio = DA850_USER_LED2,
. {( w( T, d0 F5 S5 A                .name = "user_led2",; c" L" P3 P" [& G
                .default_trigger = "default-on",
1 L3 Z5 w' l  C7 {" W0 W' L        },( A6 P5 X1 k6 U( r6 ~
        {0 j, {5 ?4 V* B( n( G8 m% y
                .active_low = 0,
6 T. j! N$ z* r! J0 B0 y                .gpio = DA850_USER_LED3,0 T0 O. ~0 W. Z; i- p
                .name = "user_led3",# S2 t8 Q) f( Q; i0 H5 ]
                .default_trigger = "default-on",
8 J; `, V8 D% G3 Z$ \4 h% b        },. h+ l- y6 c) S6 l
};
& x6 M6 D+ n" B1 y3 G3 d6 A4 c8 y  {: Z# i  j, ?
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {6 M% g) Z, b& m  I; |% I
        .leds = da850_evm_tl_leds,
! G0 t4 Z8 m6 c8 L; g; U" o        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
* I) y  ^% t+ Z5 O- ~. f4 W5 i! c};2 o0 B6 t; X: n0 U) A3 P
; C8 L! T$ c4 b) D7 [
static void led_dev_release(struct device *dev)
# T. b' @4 a& Z6 }( W& g1 w{+ D- F) r5 a) U& b$ S. U  J
};
7 L# Y4 S" s* B+ a( \, K6 @/ K# S' Q9 v; V# q" l7 L
static struct platform_device da850_evm_tl_leds_device = {& n) }! G. J1 |2 I1 M; w. X
        .name                = "leds-gpio",
/ W& X* m, i  Y) t) M0 ?0 Q        .id                = 1,/ [# T( s. s: K. {
        .dev = {$ Q5 E6 ]% I- ?4 G
                .platform_data = &da850_evm_tl_leds_pdata,- c( X5 n! y3 v' J* i& K5 e
                .release = led_dev_release,! X0 R. k& i! X" \# ~8 A/ ?
        }  D, r1 X. Q4 A/ M1 }7 Y
};
( B; J* Q3 Z+ K; y& k! s8 [+ w$ W' E+ y' D4 V" w+ m, C7 g
static int __init led_platform_init(void)
' F! c- b1 e0 d, y, o2 K{  m, c( a9 D- z/ c% ]) M, a
        int ret;! t3 r. V) h4 @; i1 F4 K
#if 0
6 j& P3 T/ ?( Q, Q        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
! |8 K$ @( v- F2 O0 ?1 q# {0 C        if (ret)% I) R) O" V! d. `" ?& g5 P
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
" Y& W- t& F' I/ H  }0 Y                                "%d\n", ret);
3 G! K: ^" X& `9 T#endif0 L  Z# m8 _; Q# v
        ret = platform_device_register(&da850_evm_tl_leds_device);
, g  n! b! x& A, L7 P, X/ D( k        if (ret)
/ R% h  ?3 r- E+ [2 B7 l                pr_warning("Could not register som GPIO expander LEDS");
7 p2 j8 s. k2 ~* E, a8 S) e4 S        else; X/ b9 b* G) H& m! R
                printk(KERN_INFO "LED register sucessful!\n");5 e% ?4 {; ~& c; [+ L5 v) G

/ Q& u# n1 T* P; L/ U" i) A        return ret;1 E) e; T. O$ v+ P4 @
}
9 M  R0 m+ ]- E7 s: e7 g: J! T/ s9 b* X. K: d6 N( o7 d
static void __exit led_platform_exit(void)7 q# T4 [% u  U& W: [' x, t$ c6 n1 Y
{
3 v+ x4 T7 F/ j0 q+ ^        platform_device_unregister(&da850_evm_tl_leds_device);
& `7 J" V' P9 }! U. v% j- y0 S9 n, Z- s- _6 v
        printk(KERN_INFO "LED unregister!\n");: d9 k, X- D3 g  y0 j1 j/ |
}
/ U1 o7 f" d$ O1 v+ e% ^; ?" d' [  J: {7 s& [3 j
module_init(led_platform_init);3 s8 f4 [2 p7 i) `* r
module_exit(led_platform_exit);
# q' o) P7 z/ c7 s/ z% @! q
' {0 S. Z/ v% r6 H/ y  Q8 EMODULE_DESCRIPTION("Led platform driver");* W$ B7 u8 H0 s
MODULE_AUTHOR("Tronlong");6 y' u2 T/ [, o
MODULE_LICENSE("GPL");
$ i  O! Z8 K0 e# E7 r+ A; o( E1 z5 t  f1 @# ^
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

点击跳转“创龙科技服务通”

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

GMT+8, 2026-1-19 03:05 , Processed in 0.040907 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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