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

嵌入式开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[未解决] 程序注解

[复制链接]

5

主题

8

帖子

53

积分

注册会员

Rank: 2

积分
53
跳转到指定楼层
楼主
发表于 2018-1-19 19:02:07 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
求大神给下面的程序做注解,请稍详细些,谢谢。. `6 y  x$ s8 R" L6 O  n, g
#include <linux/init.h>" a/ E) ~- v4 M, V( ]
#include <linux/module.h>
$ I7 B1 |. _! M0 W+ U#include <linux/kernel.h>
8 E" b$ j* _7 v6 r! n, Q5 k+ V#include <linux/types.h>) i( f$ X8 P; V% m7 G0 Y
#include <linux/gpio.h>
/ T/ J$ y0 a" m#include <linux/leds.h>
0 E7 W) }+ g1 W4 R5 E#include <linux/platform_device.h>; o5 M* b+ ]% T/ S
7 ~$ }) W/ T8 I6 @
#include <asm/mach-types.h>9 D2 V  I$ n/ N- y* o  l
#include <asm/mach/arch.h>* I: Z. n, }. K: S& {0 i7 C* E
#include <mach/da8xx.h>
$ S8 ^8 Q+ K4 i/ n! p- R( z. E#include <mach/mux.h>
1 m. F1 V* K8 u. Q6 a, R. h7 J0 k) H# B( C1 Q. w& N7 I! C
#define DA850_USER_LED0        GPIO_TO_PIN(0, 0)
) [' y8 F/ r& S2 p* m# W# f#define DA850_USER_LED1        GPIO_TO_PIN(0, 5)$ o" V: p" o6 @; \  p
#define DA850_USER_LED2        GPIO_TO_PIN(0, 1)4 ^0 U9 S6 S: H3 I
#define DA850_USER_LED3        GPIO_TO_PIN(0, 2)* j7 m- v0 n1 V0 x4 B* O1 N
6 m5 G* O# P, a! j/ s' M5 V. A
/* assign the tl som board LED-GPIOs*/
: _; x- i% Q6 N/ B0 bstatic const short da850_evm_tl_user_led_pins[] = {, n2 c% Q- O- ^: @
        /* These pins are definition at <mach/mux.h> file */; ~- X( u' t* ]3 j( F; H$ L
        DA850_GPIO0_0, DA850_GPIO0_1, DA850_GPIO0_2, DA850_GPIO0_5,
! B/ Y" _* A& C        -18 z' f. [/ v3 o
};
7 a  f% M# P3 A& h8 P  e
( f" w3 ]$ \% Sstatic struct gpio_led da850_evm_tl_leds[] = {
7 z; t4 A% ?% z! m: b        {1 |; U- l6 m3 N7 X1 P: Y& E
                .active_low = 0,! ]3 x, T2 ]5 y! V
                .gpio = DA850_USER_LED0,
/ b& \  y4 A5 @2 w7 l% ]  D                .name = "user_led0",
- `5 k; c% E% `  ~& W5 u                .default_trigger = "default-on",! ^- q- v  Y$ L- C( _
        },1 J5 [/ ]! G9 A; _5 \6 @, L$ V  F% E
        {7 Z& E* K3 J& I7 Y
                .active_low = 0,1 p0 l+ `! `, ?5 p; U/ |
                .gpio = DA850_USER_LED1,
" {9 Z5 z$ C( l7 d2 K4 d                .name = "user_led1",: x$ b9 h( d8 s1 q
                .default_trigger = "default-on",
: t5 Z! f: z. f2 K        },
8 H+ E# X3 S1 J' B        {0 G/ ?8 R+ r7 v: c
                .active_low = 0,# n8 M) W! z4 L; k5 C
                .gpio = DA850_USER_LED2," L6 C  z. X0 b1 i8 C2 B
                .name = "user_led2",  O+ o9 j& p, e5 ~) B8 U
                .default_trigger = "default-on",. E7 \! U  m* a3 }# b# u3 ?
        },  p5 S9 a1 S. S; n* _
        {
8 l; q$ j9 a4 C7 E; P                .active_low = 0,7 D" K: r9 ?5 R  X
                .gpio = DA850_USER_LED3,
. o$ l& j, X( c  g2 T# L                .name = "user_led3",
8 @# M7 o0 E  Y( j) U; A* ~                .default_trigger = "default-on",
% N( r0 L+ x' D        },
) d( K) l" l# r0 G0 |- V0 O};1 P- V4 k6 t9 W5 x
* G% g% w( |: s# P; z
static struct gpio_led_platform_data da850_evm_tl_leds_pdata = {
, F/ v) X+ m- B' o( _% c        .leds = da850_evm_tl_leds,
/ s0 ~8 I/ j  P  S- U0 L1 O. g! i        .num_leds = ARRAY_SIZE(da850_evm_tl_leds),8 }& D! r0 _  I( @
};
9 f4 Q) h" B( i4 i' e( r+ U6 z+ T% A6 U5 m. c7 u
static void led_dev_release(struct device *dev)
0 a8 H/ b5 P8 }0 T4 O! c{
2 }# D9 ~& T, ~- h8 e/ x# S};) n5 K* j0 t4 o$ ?; {# U

. w) J$ B) f  P7 ~static struct platform_device da850_evm_tl_leds_device = {
4 a! O: o8 r6 Q( u6 c! S# t        .name                = "leds-gpio",
7 Q/ |# Y  D7 T$ h' A        .id                = 1,
! o* |  e; l# a* B) C( r2 W        .dev = {
) M$ Q* v; q5 K: N9 D" N                .platform_data = &da850_evm_tl_leds_pdata,' a/ v1 F7 ]" r% S0 O& Q6 q
                .release = led_dev_release,
' x. Q9 ]6 I4 p8 i& T8 R        }
( C* {1 Z6 R, \};# M3 `; X& k" z: a" {/ i1 \
- _( U9 a7 W6 a( v8 y
static int __init led_platform_init(void)' b8 Q/ K; D" b
{" V. s, r8 ~1 G# ^$ J$ _! ~: W3 [
        int ret;9 D+ |5 }3 z9 }' K2 }
#if 0
4 X( X- b, ]$ Y. W7 V        ret = davinci_cfg_reg_list(da850_evm_tl_user_led_pins);# @; n8 W. B0 N1 O- @- w. O
        if (ret)4 p1 ^1 Z8 ]2 v2 H1 a7 W/ w
                pr_warning("da850_evm_tl_leds_init : User LED mux failed :"
. D. N5 f4 k8 @                                "%d\n", ret);
0 L% X* z! u5 K#endif
" D" `8 C% P+ K0 I6 b        ret = platform_device_register(&da850_evm_tl_leds_device);
6 L6 z7 S+ q0 w' x        if (ret)9 u7 Y! a, N6 t. ?( n
                pr_warning("Could not register som GPIO expander LEDS");
- e6 I4 l+ [% b  a0 f+ D( X        else6 ^* ^, y2 g" c
                printk(KERN_INFO "LED register sucessful!\n");$ P. q' k6 U% T8 A8 {1 Y" N, Q
$ y4 W( E) y* G0 L6 h1 z
        return ret;9 r( T2 r1 h+ i4 |4 H: n7 e2 _
}3 z: h$ W7 |' O, x" A

  x3 Y; H6 z* D% [static void __exit led_platform_exit(void)9 z. N1 K9 a! I2 b. m
{/ t) b7 X+ y( z. s3 V% R
        platform_device_unregister(&da850_evm_tl_leds_device);3 o9 H1 i* e/ M, v/ H+ ?
1 _% a/ I5 X  Q- ]$ b' \- I& Z
        printk(KERN_INFO "LED unregister!\n");7 ], j+ i- Z' o" d: O, K
}# @+ Y+ _) s- P7 u' F* Y, o
6 b; _4 d0 L7 ~' t( c& I) L
module_init(led_platform_init);
( G$ ~/ R0 h9 Y1 h" L* \module_exit(led_platform_exit);
9 E2 j! u+ L' E
: V3 P2 b2 r6 `! w" i% s6 p, |3 lMODULE_DESCRIPTION("Led platform driver");
, |' F1 x% R8 o; C7 x2 _8 a" TMODULE_AUTHOR("Tronlong");! e: E$ K* a* H
MODULE_LICENSE("GPL");
- ]( R+ W4 ~* [4 @. r9 e* Q  ^% _  f+ P  f* T2 N2 z0 B5 ~6 j
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-2 13:59 , Processed in 0.043988 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2015 Comsenz Inc.

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