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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。
# X; r$ i4 }7 D4 y2 o( B- l#include <linux/init.h>
& l, B9 h9 l7 E( a7 B' ]#include <linux/module.h>
- c2 q1 t, U, [4 I. w' N/ Q#include <linux/kernel.h>
/ y' e/ _( j5 S5 `% {8 Q#include <linux/types.h>2 H+ h: [0 e& S2 c: A
#include <linux/gpio.h>) F) v; K- s/ W4 t( A+ c. z% C
#include <linux/leds.h>
% E3 x. w0 S; B* `2 o#include <linux/platform_device.h>
$ n3 y. O9 L: t* P
$ @% L# y1 S( d. s& U1 H' l#include <asm/mach-types.h>% y) J5 r; K, g3 r: Q
#include <asm/mach/arch.h>' {; s- p% W3 c5 M
#include <mach/da8xx.h>1 w9 t: D) R( n3 \
#include <mach/mux.h>" ~( r/ p+ H% Z% e

9 B5 y+ T  @, ]* @! g- j#define DA850_USER_LED0        GPIO_TO_PIN(0, 0); `2 P  z5 r- W4 }& u0 B
#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)+ L  U' f* ^# M' v, x3 a
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)* _7 m' v2 D/ H# u5 c' f
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)/ b( t% t# n4 W* d, V7 O

# V! f+ j9 V0 @9 Q  C+ X& m/* assign the tl som board LED-GPIOs*/8 x* B0 o/ [8 S; C
static const short da850_evm_tl_user_led_pins[] = {3 n1 f) [* a0 k; c" M7 l+ o6 C
        /* These pins are definition at <mach/mux.h> file */  k2 {; t9 E" A4 H( S
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
/ J& ?4 g* v" s        -13 I( Q) P; E9 {* n
};1 @- g) X: V6 Z1 |6 D2 z
7 H* P5 J. ^: Z. ~+ a5 F; x
static struct gpio_led da850_evm_tl_leds[] = {
4 l2 P2 u$ U" C  g        {3 `8 C' j; ]0 d! u. }
                .active_low = 0,
  B0 [1 ^! X6 B                .gpio = DA850_USER_LED0,: l- ?2 _! P  E
                .name = "user_led0",
/ C$ `2 C3 x- M7 X                .default_trigger = "default-on",
+ m5 S3 a, U" E* b1 _        },/ {. ~- F: {: F7 `) t1 r, A: K
        {
: i' ?$ ?5 p+ e: o                .active_low = 0,$ J* \+ S6 j% l& y  R
                .gpio = DA850_USER_LED1,0 p; m" Z1 K( X; p9 V7 F
                .name = "user_led1",; P% `/ x' B9 R2 F
                .default_trigger = "default-on",! j* m8 \1 S! p
        },  V4 u4 n$ i! n
        {
1 p. N0 A& k( _                .active_low = 0,
. f6 ~1 A) Z- \3 M                .gpio = DA850_USER_LED2,/ B; Q& U3 [7 M. _9 h- F
                .name = "user_led2",2 |# |3 J3 t4 i8 e  `9 a" w- {
                .default_trigger = "default-on",' H6 U  v: r' H5 ^% C) H
        },
$ ]3 _+ u" Y! h. K5 ~2 S# A        {
# n9 [/ Y7 P7 n1 D" n. e; Y                .active_low = 0,5 k  T0 I" \) I% e- \* J/ W
                .gpio = DA850_USER_LED3,
( J1 D* O8 W1 O                .name = "user_led3",$ d3 D" ^9 {; d
                .default_trigger = "default-on",
2 j& b' G3 i) n$ ?3 f- Y. U        },  v. d4 [( n1 n0 [  i, {$ X
};
& }% V1 Q6 ]7 f" e; C; ]' o
. a4 _. e% `1 I" \) A* Rstatic struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
0 l, H: [. [( n        .leds = da850_evm_tl_leds,% ?+ d8 k( o+ n
        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),
- U* Q6 O( D0 L# k# Y$ l};! P# L3 J& j/ {# y- s: o

* |# K) R+ l) d, B# X% wstatic void led_dev_release(struct device *dev)4 [, D' E4 ?2 V* N
{
6 l: B3 b& `6 C, E% |};
" |- F4 ?$ u, h
) l" L1 q5 W3 d7 ~0 ?static struct platform_device da850_evm_tl_leds_device = {" t' |  k0 Y" z5 b! l
        .name                = "leds-gpio",8 p' e6 @2 J0 P4 `0 N( @% G- k% ~
        .id                = 1,+ {$ S& I" z8 C, U/ l6 O
        .dev = {9 f/ r6 K2 [+ K+ U4 F
                .platform_data = &da850_evm_tl_leds_pdata,
' B7 O8 ?; {7 _, z+ t. w1 m- Z+ V                .release = led_dev_release,; x+ D6 T1 {9 @/ r1 t
        }
1 K8 |* f0 t7 ]% c};
9 ?# H7 F' w0 c6 l% N8 V; r  W2 r" \% F5 B
static int __init led_platform_init(void)
! |) B. V4 w3 u9 [  {{4 q- d1 i2 ]  \+ A3 I9 F8 V
        int ret;
; M1 {8 V4 i% S$ g#if 0" |5 ~( c9 \, O, g' j2 k" Q; D
        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);
% r, J  `' ]0 \5 a        if (ret)0 n  u2 q; V. x4 g
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
3 V8 x' [5 }' i/ h9 Z                                "%d\n", ret);
9 p9 u* d: B# `' {- W* M#endif
4 n4 k4 q8 ^9 W: K, R* Y        ret = platform_device_register(&da850_evm_tl_leds_device);
! Y, O0 L/ @* v' I        if (ret)
. v3 |7 j+ m7 m* r2 o7 o5 O                pr_warning("Could not register som GPIO expander LEDS");
( u" l" Z1 Z3 U        else
1 `3 X0 C$ R% A9 J$ _                printk(KERN_INFO "LED register sucessful!\n");5 \( g+ O0 T. r

8 n6 `7 N2 S' p. z5 E+ j        return ret;: f* ^7 }$ r/ j+ O3 c$ u
}
- |# @" F+ Q0 H, n% W% ^
2 s- U3 k; B. X& U1 v4 A7 }static void __exit led_platform_exit(void)
: b) e9 f6 s  G7 V1 [3 x8 d' b: q- ]{  G- Q8 M9 V7 Q# U0 U, Y- C
        platform_device_unregister(&da850_evm_tl_leds_device);2 w% y5 i+ P6 |& v8 P( d3 o
2 C4 J2 F3 Y  ?' X
        printk(KERN_INFO "LED unregister!\n");, ?, J+ O2 U7 ^5 E. v
}1 V  W" l4 f* l1 c; n
5 l7 r1 k' [* p, R6 Y( O
module_init(led_platform_init);# T2 g( N, }7 o; ]0 g. O
module_exit(led_platform_exit);
. T) G7 k% R) Q: v
" |- z7 e4 M9 _MODULE_DESCRIPTION("Led platform driver");
: K0 D1 L3 z2 k& ~7 p$ S. xMODULE_AUTHOR("Tronlong");- B! Q( o0 O- z9 l
MODULE_LICENSE("GPL");/ V7 z7 a) C$ q4 H/ P6 E
1 E7 Y6 h3 F- _6 U. t: {
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2026-2-18 17:21 , Processed in 0.038768 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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