1嵌入式系统实验指导书唐永锋.docx

上传人:b****5 文档编号:6927991 上传时间:2023-01-12 格式:DOCX 页数:39 大小:1.14MB
下载 相关 举报
1嵌入式系统实验指导书唐永锋.docx_第1页
第1页 / 共39页
1嵌入式系统实验指导书唐永锋.docx_第2页
第2页 / 共39页
1嵌入式系统实验指导书唐永锋.docx_第3页
第3页 / 共39页
1嵌入式系统实验指导书唐永锋.docx_第4页
第4页 / 共39页
1嵌入式系统实验指导书唐永锋.docx_第5页
第5页 / 共39页
点击查看更多>>
下载资源
资源描述

1嵌入式系统实验指导书唐永锋.docx

《1嵌入式系统实验指导书唐永锋.docx》由会员分享,可在线阅读,更多相关《1嵌入式系统实验指导书唐永锋.docx(39页珍藏版)》请在冰豆网上搜索。

1嵌入式系统实验指导书唐永锋.docx

1嵌入式系统实验指导书唐永锋

 

淮阴工学院

嵌入式系统实验指导书

编者:

唐永锋

 

适用学院:

电气学院

 

电子与电气工程学院

2014年6月23日

实验一开发环境的搭建与调试……………………………………1

实验二S5PV210数码管实验………………………………………14

实验三S5PV210GPIOLED控制实验………………………………20

实验四S5PV210串口实验…………………………………………25

实验五S5PV210步进电机控制实验………………………………33

实验一开发环境的搭建与调试

1、实验目的

(1)、熟悉Eclipse开发环境的搭建;

(2)、熟悉Eclipse的调试方法,

2、实验内容

创建一个工程,新建一个Makefile文件,新建一个脚本文件,新建一个汇编源文件,编译工程,并配置FS-JTAG调试工具,配置Eclipse调试工具。

3、实验设备

(1)、硬件:

CVT-A8-III教学平台,PC机,A8JTAG仿真器。

(2)、软件:

PC机操作系统(WindowsXP)+Eclipse开发环境。

4、实验步骤

4.1Eclipse开发环境的安装

Eclipse是著名的开放源代码、跨平台的自由集成开发环境(IDE)。

它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。

JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。

最初主要用来Java语言开发,通过安装不同的插件Eclipse可以支持不同的计算机语言,比如C++等开发工具。

许多软件开发商以Eclipse为框架开发自己的IDE。

Eclipse的目标是成为可进行任何语言开发的IDE集成者,使用者只需下载各种语言的插件即可。

打开光盘下的目录,安装文件包,安装步骤如下:

4.1.1安装ARM-GCC交叉编译工具

打开yagarto-bu-2.21_gcc-4.6.2-c-c++_nl-1.19.0_gdb-7.3.1_eabi_20111119.exe。

这个工具为交叉编译器。

这里的安装目录需要记住,因为在后面的编译过程中,需要使用对应的交叉编译器。

安装过程如下:

安装完成后,对应的编译器存放目录为:

D:

\ProgramFiles\yagarto\bin

4.1.2安装GNUmake工具

打开yagarto-tools-20100703-setup.exe,安装过程如下:

4.1.3安装FS-JTAG工具

打开Setup.exe。

安装过程如下:

安装完成后,桌面有如下图标。

这个工具主要是用来仿真器连接目标A8实验箱。

4.1.4安装JAVA开发包

打开jre-6u7-windows-i586-p-s.exe。

如果电脑上已经安装过JAVA此类的工具,则不需要再次安装。

4.1.5安装Eclipse

解压05.eclipse-cpp-helios-SR1-win32.zip压缩包,解压完成后,找到当中的eclipse.exe发送到桌面快捷方式,改名为eclipse_c(这里的改名主要为区别ANDROID高版本的eclipse)。

图标如下:

打开eclipse_c,设置过程如下:

这里主要是设置工作区的主目录,我们这里采用默认。

这里点击最右边的工作区按钮,就进入eclipse_c主界面。

如下所示:

4.2ARM仿真器驱动的安装

把FS-JTAG接入计算机USB口,会提示发现新硬件(如图),选择从列表或指定位置安装,然后单击下一步。

单击下一步会出现选择驱动安装目录,单击浏览找到DRIVER所在的目录(如下图)

选择好,单击确定后,会提示没有通过微软认证,选择“仍然继续”

在安装的过程中,会提示需要ftdibus.sys文件,单击浏览在DRIVER找到需要所需要的文件,应驱动安装3次,驱动就算安装完成。

 

4.3Eclipse的调试方法

4.3.1指定一个工程存放目录

EclipseforARM是一个标准的窗口应用程序,可以点击程序按钮开始运行。

打开后必须先指定一个工程存放路径:

4.3.2创建一个工程

进入主界面后,单击File->New->CProject菜单项,Eclipse将打开一个标准对话框,输入希望新建工程的名字(如gpioled_s)单击Finish即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。

4.3.3新建一个MakeFile文件

 在创建一个新的工程后,单击File->New->Other在弹出的对话框中的General下单击file,然后单击next。

然后选择所要指定的工程后,在文件名选框中输入文件名MakeFile单击Finish。

4.3.4新建一个脚本文件

单击File->New->Other在弹出的对话框中的General下单击file,然后单击Next,然后选择所要指定的工程后,在文件名选框中输入文件名s5pc210.init,单击Finish。

4.3.5新建一个汇编源文件

单击File->New->Other在弹出的对话框中的General下单击file,然后单击Next,然后选择所要指定的工程后,在文件名选框中输入文件名led.s,单击Finish。

4.3.6编译工程

1)在汇编源文件(led.s)当中输入汇编代码

.equGPH3CON,0XE0200C60

.equGPH3DAT,0XE0200C64

.section.text

.globl_start

_start:

start:

ldrr0,=GPH3CON

ldrr1,=0x11110000@setgpiogpg3outputmode

strr1,[r0]

loop:

ldrr0,=GPH3DAT

movr1,#0xff

strr1,[r0]

ldrr0,=GPH3DAT

movr1,#0x0

strr1,[r0]

ldrr0,=GPH3DAT

movr1,#0xff

strr1,[r0]

ldrr0,=GPH3DAT

movr1,#0xef

strr1,[r0]

ldrr0,=GPH3DAT

movr1,#0xdf

strr1,[r0]

ldrr0,=GPH3DAT

movr1,#0xbf

strr1,[r0]

ldrr0,=GPH3DAT

movr1,#0x7f

strr1,[r0]

bloop

.end

2)编写MakeFile文件编译规则在MakeFile输入如下信息

all:

led.s

arm-none-eabi-gcc-4.6.2-O0-g-c-oled.oled.s

arm-none-eabi-ldled.o-Ttext0x20080000-oled.elf

arm-none-eabi-objcopy-Obinary-Sled.elfled.bin

arm-none-eabi-objdump-Dled.elf>led.dis

3)在s5pc210.init文件如输入如下信息

targetremote127.0.0.1:

3333

monitorhalt

monitorarmmcr1501000

monitorstep0

4)保存各文档,选中工程led,点击CleanProject,

建立工程如下:

5)编译Project->BulitAll

4.4Eclipse的调试工程过程

4.4.1配置FS-JTAG调试工具

在Target选项中选择s5pc100或者s5pc110,

在Workdir选项中选择自己的工程目录(D:

\eclipse_projects\gpioled_s),

单击Connect后下面出现如下图所示,即表示已经连接目标板。

(此前需要连接好仿真器,实验箱上电)。

此时表示仿真器已经与目标实验箱连接成功。

4.4.2配置调试工具

在Eclipse的菜单中单击Run–>DebugConfigurations弹出下图对话框。

单击ZyinEmbeddeddebug(Native)选项,然后右击选择“NEW”出现一个窗口。

在Main选项卡中Project框中,点击Browse选择gpioled_s工程,在C/C++Application中单击Browse找到工程目录下的led.elf文件。

在Debugger选项卡中main中GDBDebugger中单击Browse选择前面安装的C:

\ProgramFiles\yagarto\bin\arm-none-eabi-gdb.exe(这里选择自己的安装目录),在GDBCommandfile中选择自己工程目录下的s5pc100.init文件。

在Command选项卡中输入:

load

break_start

c

点击应用后点击debug开始调试运行,会出现调试界面。

程序会在断点处停下,然后使用单步和全速等工具进行调试运行程序,点击全速运行,会出现LED亮。

5、实验报告要求

(1)熟悉Eclipse开发环境的搭建;

(2)熟悉Eclipse的调试方法;

实验二S5PV210数码管实验

1、实验目的

(1)熟悉Eclipse开发环境;

(2)熟悉在ARM裸机环境下的C语言编程;

(3)熟悉CVT-S5PV210下,数码管的操作。

2、实验内容

(1)编写程序,练习C语言的使用。

(2)实现对开发板上数码管控制。

(3)代码分别在Eclipse的Debug环境下运行。

3、实验设备

(1)硬件:

CVT-S5PV210嵌入式教学实验箱、PC机;

(2)软件:

PC机操作系统(WindowsXP)+Eclipse开发环境。

4、基础知识

发光二极管数码显示器简称LED显示器。

LED显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点,目前广泛应用于嵌入式系统中。

7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。

一般共阴极可以不需外接电阻,但共阳极接法中发光二极管必须外接电阻。

LED的结构及连接图见图2-1。

图2-1LED结构及连接图

当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电平时,对应的二极管点亮。

因此要显示某字形就应使此字形的相应段的二极管点亮,也就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的段码。

字符0、1、2…F与LED码段A、B、C…F以及DP(小数点)的关系如表3-8-2所示:

表2-1LED字符与码段对应表

字符

DP

G

F

E

D

C

B

A

段码(共阴)

段码(共阳)

0

0

0

1

1

1

1

1

1

3FH

C0H

1

0

0

0

0

0

1

1

0

06H

F9H

2

0

1

0

1

1

0

1

1

5BH

A4H

3

0

1

0

0

1

1

1

1

4FH

B0H

4

0

1

1

0

0

1

1

0

66H

99H

5

0

1

1

0

1

1

0

1

6DH

92H

6

0

1

1

1

1

1

0

1

7DH

82H

7

0

0

0

0

0

1

1

1

07H

F8H

8

0

1

1

1

1

1

1

1

7FH

80H

9

0

1

1

0

1

1

1

1

6FH

90H

A

0

1

1

1

0

1

1

1

77H

88H

B

0

1

1

1

1

1

0

0

7CH

83H

C

0

0

1

1

1

0

0

1

39H

C5H

D

0

1

0

1

1

1

1

0

5EH

A1H

E

0

1

1

1

1

0

0

1

79H

86H

F

0

1

1

1

0

0

0

1

71H

8EH

-

0

1

0

0

0

0

0

0

40H

BFH

.

1

0

0

0

0

0

0

0

80H

7FH

熄灭

0

0

0

0

0

0

0

0

00H

FFH

说明:

共阴的LED,被选中时的段为高电平有效,熄灭的段码为00H;

共阳的LED,被选中时的段为低电平有效.熄灭的段码为FFH。

LED显示器的接口一般有静态显示与动态显示接口两种方式,下面分别加以介绍。

1)静态显示

LED数码管采用静态接口时,共阴极或共阳极点连接在一起接地或接高电平。

每个显示位的段选线与一个8位并行口线对应相连,只要在显示位上的段选线上保持段码电平不变,则该位就能保持相应的显示字符。

这里的8位并行口可以直接采用并行I/O口,也可以采用串入/并出的移位寄存器或是其它具有三态功能的锁存器等。

2)动态显示

在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。

而共阴(或共阳)极公共端分别由相应的I/O线控制,实现各位的分时选通。

由于各个数码管是共用同一个段码输出口,分时轮流通电的,从而大大简化了硬件线路,降低了成本。

不过这种方式的数码管接口电路中数码管不宜太多,一般在8个以内,否则每个数码管所分配的实际导通时间会太少,显得亮度不足。

若LED位数较多时应采用增加驱动能力以提高显示亮度。

本实验系统中采用的是动态显示接口,其中数码管扫描控制地址为0x88007000,位0-位5每位分别对应一个数码管,将其中某位清0来选择相应的数码管,地址0x88009000为数码管的数据寄存器。

数码管采用共阳方式,向该地址写一个数据就可以控制LED的显示。

实验电路原理图如下:

实验程序如下:

#include"s5pc210.h"

#include"uart.h"

#defineU8unsignedchar

unsignedcharseg7table[16]={

/*01234567*/

0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,

/*89ABCDEF*/

0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,

};

/********************************************************************//Functionname:

delay

//Description:

延时子程序

//Returntype:

void

//Argument:

count,延时的数值

********************************************************************/

voiddelay(intcount)

{

intcnt;

for(count=count;count>0;count--)

for(cnt=0;cnt<1000;cnt++);

}

intmain()

{

uart_init();

printf("CVTS5PV210JtagSegTest...\n");

inti;

*((U8*)0x88007000)=0x00;

for(;;){

/*数码管从0到F依次将字符显示出来*/

for(i=0;i<0x10;i++){

/*查表并输出数据*/

*((U8*)0x88009000)=seg7table[i];

delay(1000);

}

/*数码管从F到0依次将字符显示出来*/

for(i=0xf;i>=0x0;i--){

/*查表并输出数据*/

*((U8*)0x88009000)=seg7table[i];

delay(1000);

}

}

return0;

}

5、实验步骤

1.首先打开Eclipse软件,指定工作目录。

2.打开Seg工程,点击工具栏的“File”,然后点击“Import”。

然后点击“ExistingProjectintoWorkspace”。

再次点击“Browse”按钮。

进入目录D:

\eclipse_projects\Seg\。

点击“Finish”按钮。

成功添加工程到Eclipse中。

3.点击工程右键,点击“BulidProject”按钮,对工程进行编译,生成seg.elf文件。

编译成功提示如上。

4.连接好仿真器。

实验箱通电。

打开FS-JTAG调试工具,连接成功。

设置DebugConfigurations。

设置过程参看实验1内容。

调试模式成功运行后。

查看结果。

6、实验结果

六个SEG轮流闪烁,实现从0-F轮流显示。

7、实验报告要求

(1)结合户外广告屏,根据实验总结LED的不同显示方法;

(2)数码管的静态显示和动态显示各有什么优缺点。

 

实验三S5PV210GPIOLED实验

1、实验目的

(1)熟悉Eclipse开发环境。

(2)熟悉在ARM裸机环境下的C语言编程。

(3)熟悉CVT-S5PV210下,GpioLed的操作。

2、实验内容

(1)编写程序,练习C语言的使用。

(2)实现对开发板上GpioLed的控制。

(3)代码分别在Eclipse的Debug环境下运行。

3、实验设备

(1)硬件:

CVT-S5PV210嵌入式教学实验箱、PC机;

(2)软件:

PC机操作系统(WindowsXP)+Eclipse开发环境。

4、基础知识

从电路图上我们可以看到,发光二极管LED的一端连接到了ARM的GPIOGPH3,另一端经过一个限流电阻接电源VDD33V。

当GPIO口为低电平时,LED两端产生电压降,这时LED有电流通过并发光。

反之当GPIO为高电平时,LED将熄灭。

注意亮灭之间要有一定的延时,以便人眼能够区分出来。

实验相应寄存器

端口配置寄存器

端口数据寄存器

实验电路

实验程序如下:

#include"s5pc210.h"

#include"uart.h"

/********************************************************************

//Functionname:

delay

//Description:

延时子程序

//Returntype:

void

//Argument:

count,延时的数值

********************************************************************/

voiddelay(intcount)

{

intcnt;

for(count=count;count>0;count--)

for(cnt=0;cnt<1000;cnt++);

}

intmain()

{

uart_init();

printf("CVTS5PV210JtagGpioLedTest...\n");

volatileinti,j=0;

GPH3.GPH3CON=0x11110000;

while

(1){

GPH3.GPH3DAT=0xFF;

for(i=0;i<=1000000;i++);

GPH3.GPH3DAT=0x0;

for(i=0;i<=1000000;i++);

for(j=0;j<4;j++){

GPH3.GPH3DAT=~(0x1<<(j+4));

for(i=0;i<=1000000;i++);

}

}

return0;

}

5、实验步骤

1.首先打开Eclipse软件,指定工作目录。

2.打开GpioLed工程,点击工具栏的“File”,然后点击“Import”。

然后点击“ExistingProjectintoWorkspace”。

再次点击“Browse”按钮。

进入目录D:

\eclipse_projects\GpioLed\。

点击“Finish”按钮。

成功添加工程到Eclipse中。

3.点击工程右键,点击“BulidProject”按钮,对工程进行编译,生成gpioled.elf文件。

编译成功提示如上。

4.连接好仿真器。

实验箱通电。

打开FS-JTAG调试工具,连接成功。

设置DebugConfigurations。

设置过程参看实验1内容。

调试模式成功运行后。

查看结果。

6、实验结果

观察到gpioled亮灭,流水闪亮。

7、实验报告要求

熟悉GPIO接口作为输出与输入控制的编程方法。

实验四S5PV210串口实验

1、实验目的

1.熟悉Eclipse开发环境。

2.熟悉在ARM裸机环境下的C语言编程。

3.熟悉CVT-S5PV210下,串口uart的操作。

2、实验内容

编写程序,练习C语言的使用。

实现对开发板上串口的控制。

代码分别在Eclipse的Debug环境下运行。

3、实验设备

1.硬件:

CVT-S5PV210嵌入式教学实验箱、PC机;

2.软件:

PC机操作系统Windows98(2000、XP)+Eclipse开发环境。

4、基础知识

串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA与TTL电平转换器以及地址译码电路组成。

采用的通信协议有两类:

异步协议和同步协议。

随着大规模集成电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,它们的基本功能是类似的。

采用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。

4.1异步串行通信

异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。

数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。

接收方对于同一根

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1