1、1嵌入式系统实验指导书唐永锋淮 阴 工 学 院嵌入式系统实验指导书编 者:唐永锋适用学院:电气学院电子与电气工程学院2014年 6 月 23 日实验一 开发环境的搭建与调试1实验二 S5PV210数码管实验14实验三 S5PV210 GPIOLED控制实验20实验四 S5PV210串口实验25实验五 S5PV210步进电机控制实验33实验一 开发环境的搭建与调试1、实验目的(1)、熟悉Eclipse开发环境的搭建;(2)、熟悉Eclipse的调试方法,2、实验内容创建一个工程,新建一个Makefile文件,新建一个脚本文件,新建一个汇编源文件,编译工程,并配置FS-JTAG调试工具,配置Ecl
2、ipse调试工具。3、实验设备(1)、硬件:CVT-A8-III教学平台,PC机,A8 JTAG仿真器。(2)、软件:PC机操作系统(Windows XP)+ Eclipse开发环境。4、实验步骤4.1 Eclipse开发环境的安装Eclipse是著名的开放源代码、跨平台的自由集成开发环境(IDE)。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了
3、一个通用的开发平台。最初主要用来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。 这个工具为交叉编译器。这里的安装目录需要记住,因为在后面的编译过程中,需要使用对应的交叉编译
4、器。 安装过程如下: 安装完成后,对应的编译器存放目录为:D:Program Filesyagartobin4.1.2安装GNU make工具打开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-
5、SR1-win32.zip压缩包,解压完成后,找到当中的eclipse.exe发送到桌面快捷方式,改名为eclipse_c(这里的改名主要为区别ANDROID高版本的eclipse)。图标如下:打开eclipse_c,设置过程如下: 这里主要是设置工作区的主目录,我们这里采用默认。 这里点击最右边的工作区按钮,就进入eclipse_c主界面。如下所示:4.2 ARM仿真器驱动的安装把FS-JTAG 接入计算机USB口,会提示发现新硬件(如图),选择从列表或指定位置安装,然后单击下一步。单击下一步会出现选择驱动安装目录,单击浏览找到DRIVER所在的目录(如下图)选择好,单击确定后,会提示没有通
6、过微软认证,选择“仍然继续”在安装的过程中,会提示需要ftdibus.sys文件,单击浏览在DRIVER找到需要所需要的文件,应驱动安装3次,驱动就算安装完成。4.3 Eclipse的调试方法4.3.1 指定一个工程存放目录Eclipse for ARM 是一个标准的窗口应用程序,可以点击程序按钮开始运行。打开后必须先指定一个工程存放路径: 4.3.2 创建一个工程进入主界面后,单击File -New- C Project菜单项,Eclipse将打开一个标准对话框,输入希望新建工程的名字(如gpioled_s)单击Finish即可创建一个新的工程,建议对每个新建工程使用独立的文件夹。4.3.3
7、 新建一个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 ,然后单击
8、Next ,然后选择所要指定的工程后,在文件名选框中输入文件名led.s , 单击Finish。4.3.6 编译工程 1)在汇编源文件(led.s)当中输入汇编代码.equ GPH3CON, 0XE0200C60.equ GPH3DAT, 0XE0200C64.section .text.globl _start_start:start: ldr r0,=GPH3CON ldr r1,=0x11110000 set gpio gpg3 output mode str r1,r0loop: ldr r0,=GPH3DAT mov r1,#0xff str r1,r0 ldr r0,=GPH3DA
9、T mov r1,#0x0 str r1,r0 ldr r0,=GPH3DAT mov r1,#0xff str r1,r0 ldr r0,=GPH3DAT mov r1,#0xef str r1,r0 ldr r0,=GPH3DAT mov r1,#0xdf str r1,r0 ldr r0,=GPH3DAT mov r1,#0xbf str r1,r0 ldr r0,=GPH3DAT mov r1,#0x7f str r1,r0 b loop .end2)编写MakeFile文件编译规则 在MakeFile输入如下信息all:led.s arm-none-eabi-gcc-4.6.2 -O
10、0 -g -c -o led.o led.s arm-none-eabi-ld led.o -Ttext 0x20080000 -o led.elf arm-none-eabi-objcopy -O binary -S led.elf led.binarm-none-eabi-objdump -D led.elf led.dis3)在s5pc210.init文件如输入如下信息target remote 127.0.0.1:3333monitor haltmonitor arm mcr 15 0 1 0 0 0monitor step 04)保存各文档,选中工程led,点击Clean Proje
11、ct, 建立工程如下: 5)编译Project - Bulit All4.4 Eclipse的调试工程过程4.4.1 配置FS-JTAG 调试工具 在Target选项中选择s5pc100或者s5pc110,在Workdir 选项中选择自己的工程目录(D:eclipse_projectsgpioled_s),单击Connect 后下面出现如下图所示,即表示已经连接目标板。(此前需要连接好仿真器,实验箱上电)。此时表示仿真器已经与目标实验箱连接成功。4.4.2配置调试工具在Eclipse的菜单中单击Run Debug Configurations 弹出下图对话框。单击Zyin Embedded d
12、ebug(Native)选项,然后右击选择“NEW”出现一个窗口。在Main选项卡中 Project框中,点击Browse选择gpioled_s工程,在C/C+ Application 中单击Browse找到工程目录下的led.elf文件。在Debugger选项卡中main中GDB Debugger 中单击Browse选择前面安装的C:Program Filesyagartobinarm-none-eabi-gdb.exe(这里选择自己的安装目录),在GDB Command file中选择自己工程目录下的s5pc100.init文件。在Command选项卡中 输入:loadbreak _sta
13、rtc点击应用 后点击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-S5PV2
14、10嵌入式教学实验箱、PC机;(2)软件:PC机操作系统(Windows XP) Eclipse开发环境。4、 基础知识发光二极管数码显示器简称LED显示器。LED显示器具有耗电省、成本低廉、配置简单灵活、安装方便、耐振动、寿命长等优点,目前广泛应用于嵌入式系统中。7段LED由7个发光二极管按“日”字形排列,所有发光二极管的阳极连在一起称共阳极接法,阴极连在一起称为共阴极接法。一般共阴极可以不需外接电阻,但共阳极接法中发光二极管必须外接电阻。LED的结构及连接图见图2-1。图2-1 LED结构及连接图当选用共阴极的LED显示器时,所有发光二极管的阴极连在一起接地,当某个发光二极管的阳极加入高电
15、平时,对应的二极管点亮。因此要显示某字形就应使此字形的相应段的二极管点亮,也就是送一个用不同电平组合代表的数据字来控制LED的显示,此数据称为字符的段码。字符0、1、2F与LED码段A、B、CF以及DP(小数点)的关系如表3-8-2所示:表2-1 LED字符与码段对应表字符DPGFEDCBA段码(共阴)段码(共阳)0001111113FHC0H10000011006HF9H2010110115BHA4H3010011114FHB0H40110011066H99H5011011016DH92H6011111017DH82H70000011107HF8H8011111117FH80H9011011
16、116FH90HA0111011177H88HB011111007CH83HC0011100139HC5HD010111105EHA1HE0111100179H86HF0111000171H8EH-0100000040HBFH.1000000080H7FH熄灭0000000000HFFH说明:共阴的LED,被选中时的段为高电平有效,熄灭的段码为00H;共阳的LED,被选中时的段为低电平有效熄灭的段码为FFH。LED显示器的接口一般有静态显示与动态显示接口两种方式,下面分别加以介绍。1) 静态显示LED数码管采用静态接口时,共阴极或共阳极点连接在一起接地或接高电平。每个显示位的段选线与一个8位并
17、行口线对应相连,只要在显示位上的段选线上保持段码电平不变,则该位就能保持相应的显示字符。这里的8位并行口可以直接采用并行I/O口,也可以采用串入并出的移位寄存器或是其它具有三态功能的锁存器等。2) 动态显示在多位LED显示时,为了简化电路,降低成本,将所有位的段选线并联在一起,由一个8位I/O口控制。而共阴(或共阳)极公共端分别由相应的I/O线控制,实现各位的分时选通。由于各个数码管是共用同一个段码输出口,分时轮流通电的,从而大大简化了硬件线路,降低了成本。不过这种方式的数码管接口电路中数码管不宜太多,一般在8个以内,否则每个数码管所分配的实际导通时间会太少,显得亮度不足。若LED位数较多时应
18、采用增加驱动能力以提高显示亮度。本实验系统中采用的是动态显示接口,其中数码管扫描控制地址为0x88007000,位0位5每位分别对应一个数码管,将其中某位清0来选择相应的数码管,地址0x88009000为数码管的数据寄存器。数码管采用共阳方式,向该地址写一个数据就可以控制LED的显示。实验电路原理图如下: 实验程序如下:#include s5pc210.h#include uart.h#define U8 unsigned charunsigned char seg7table16 = /* 0 1 2 3 4 5 6 7*/ 0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x9
19、2, 0x82, 0xf8, /* 8 9 A B C D E F*/ 0x80, 0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86, 0x8e,;/*/ Function name : delay/ Description : 延时子程序/ Return type : void/ Argument : count,延时的数值*/void delay( int count ) int cnt; for( count = count; count0; count-) for( cnt = 0; cnt 1000; cnt+);int main() uart_init(); p
20、rintf(CVT S5PV210 Jtag Seg Test.n); int i; *(U8*) 0x88007000) = 0x00; for( ; ; ) /* 数码管从0到F依次将字符显示出来 */ for(i=0;i=0x0;i-) /* 查表并输出数据 */ *(U8*) 0x88009000) = seg7tablei; delay (1000); return 0;5、实验步骤1. 首先打开Eclipse软件,指定工作目录。2.打开Seg工程,点击工具栏的“File”,然后点击“Import”。 然后点击“Existing Project into Workspace”。再次点
21、击“Browse”按钮。进入目录D:eclipse_projectsSeg。点击“Finish”按钮。 成功添加工程到Eclipse中。3.点击工程右键,点击“Bulid Project”按钮,对工程进行编译,生成seg.elf文件。 编译成功提示如上。4.连接好仿真器。实验箱通电。打开FS-JTAG调试工具,连接成功。 设置Debug Configurations。设置过程参看实验1内容。 调试模式成功运行后。查看结果。6、实验结果 六个SEG轮流闪烁,实现从0-F轮流显示。7、实验报告要求(1)结合户外广告屏,根据实验总结LED的不同显示方法;(2)数码管的静态显示和动态显示各有什么优缺点
22、。实验三 S5PV210 GPIOLED实验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机操作系统(Windows XP) Eclipse开发环境。4、基础知识从电路图上我们可以看到,发光二极管LED的一端连接到了ARM的GPIO GPH3,另一端经过一个限流
23、电阻接电源VDD33V。当GPIO口为低电平时,LED两端产生电压降,这时LED有电流通过并发光。反之当GPIO为高电平时,LED将熄灭。注意亮灭之间要有一定的延时,以便人眼能够区分出来。 实验相应寄存器端口配置寄存器 端口数据寄存器 实验电路 实验程序如下:#include s5pc210.h#include uart.h/*/ Function name : delay/ Description : 延时子程序/ Return type : void/ Argument : count,延时的数值*/void delay( int count ) int cnt; for( count =
24、 count; count0; count-) for( cnt = 0; cnt 1000; cnt+);int main() uart_init(); printf(CVT S5PV210 Jtag GpioLed Test.n); volatile int i,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;j4;j+) GPH3.GPH3
25、DAT = (0x1(j+4); for(i = 0; i = 1000000; i+); return 0;5、实验步骤1. 首先打开Eclipse软件,指定工作目录。2.打开GpioLed工程,点击工具栏的“File”,然后点击“Import”。 然后点击“Existing Project into Workspace”。再次点击“Browse”按钮。进入目录D:eclipse_projects GpioLed。点击“Finish”按钮。 成功添加工程到Eclipse中。3.点击工程右键,点击“Bulid Project”按钮,对工程进行编译,生成gpioled.elf文件。 编译成功提示
26、如上。4.连接好仿真器。实验箱通电。打开FS-JTAG调试工具,连接成功。 设置Debug Configurations。设置过程参看实验1内容。 调试模式成功运行后。查看结果。6、实验结果 观察到gpioled亮灭,流水闪亮。7、实验报告要求熟悉GPIO接口作为输出与输入控制的编程方法。 实验四 S5PV210串口实验1、实验目的1. 熟悉Eclipse开发环境。 2. 熟悉在ARM裸机环境下的C语言编程。 3. 熟悉CVT-S5PV210下,串口uart的操作。2、实验内容编写程序,练习C语言的使用。实现对开发板上串口的控制。代码分别在Eclipse的Debug环境下运行。 3、 实验设备
27、1. 硬件:CVT-S5PV210嵌入式教学实验箱、PC机;2. 软件:PC机操作系统 Windows 98(2000、XP) Eclipse开发环境。4、基础知识串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA与TTL电平转换器以及地址译码电路组成。采用的通信协议有两类:异步协议和同步协议。随着大规模集成电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,它们的基本功能是类似的。采用这些芯片作为串行通信接口电路的核心芯片,会使电路结构比较简单。4.1异步串行通信异步串行方式是将传输数据的每个字符一位接一位(例如先低位、后高位)地传送。数据的各不同位可以分时使用同一传输通道,因此串行I/O可以减少信号连线,最少用一对线即可进行。接收方对于同一根
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1