嵌入式系统实验指导指导书完整版
嵌入式系统实验与课程设计指导书

目录第一节实验 ------------------------------------------------------------------------------------- 2实验一ADS 1.2集成开发环境练习 ----------------------------------------------------- 2实验二:汇编指令实验1----------------------------------------------------------------- 3实验三:汇编指令实验2----------------------------------------------------------------- 4第二节实验 ------------------------------------------------------------------------------------- 6实验四:ARM微控制器工作模式实验-------------------------------------------------- 6实验五:C语言程序实验----------------------------------------------------------------- 9第三节实验 ------------------------------------------------------------------------------------11 实验六:GPIO输出控制实验1 ---------------------------------------------------------11 实验七:GPIO输出控制实验2 -------------------------------------------------------- 13 第四节实验 ----------------------------------------------------------------------------------- 15 实验八:存储器重映射实验------------------------------------------------------------ 15 实验九:外部中断实验 ----------------------------------------------------------------- 17 第五节实验 ----------------------------------------------------------------------------------- 19 实验十:定时器实验-------------------------------------------------------------------- 19 实验十一:UART实验 ----------------------------------------------------------------- 21 实验十二:IIC接口实验---------------------------------------------------------------- 24 第六节彩色液晶绘图设计------------------------------------------------------------------ 28 第七节 UC/OS-II移植----------------------------------------------------------------------- 31 第八节UC/OS-II下蜂鸣器设计 ------------------------------------------------------------ 35 第九节 RTC设计 ----------------------------------------------------------------------------- 38 第十节数码管显示设计--------------------------------------------------------------------- 41 附录------------------------------------------------------------------------------------------- 44第一部分实验课程第一节实验实验一ADS 1.2集成开发环境练习1 、实验目的了解ADS 1.2集成开发环境的使用方法2 、实验设备硬件:PC机一台软件:Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容(1)建立一个新的工程(2)建立一个汇编源文件,添加到工程(3)设置文本编译器支持中文(4)设置编译链接控制选项(5)编译连接工程(6)调试工程4 、源代码:AREA Example1,CODE,READONLY ; 声明代码段Example1ENTRY ; 标识程序入口CODE32 ; 声明32位ARM指令START MOV R0,#15 ; 设置参数MOV R1,#8ADDS R0,R0,R1 ; R0 = R0 + R1B STARTEND/********************************************************************/实验二:汇编指令实验 11 、实验目的(1)了解ADS 1.2集成开发环境以及ARMulator软件仿真(2)掌握ARM7TDMI汇编指令的用法,编写简单的汇编程序(3)掌握指令的条件执行和使用LDR/STR完成存储器的访问2 、实验设备硬件:PC机一台软件:Windows98/XP/2000系统,ADS1.2集成开发环境3 、实验内容(1)使用LDR读取0x40003100的数据,将数据加1,如小于10则用STR将结果写回原地址,如大于等于10,把0写回原地址。
嵌入式系统实验指导书

基于OMAP3530处理器的嵌入式系统实验实验指导书光电信息学院 李绍荣 杨承目录实验一嵌入式Linux实验 (1)实验二 OMAP3530基本接口实验 (2)附录一 Linux系统的安装 (4)附录二 Fedora中高级管理用户root的启用方法 (25)附录三在Fedora系统中安装VMware Tools (30)附录四设置Windows与Fedora之间的文件共享 (33)附录五实验箱主板的外设连接图 (38)附录六实验箱快速操作指导 (40)Linux实验一嵌入式实验一、实验目的掌握嵌入式Linux操作系统的环境搭建方法。
二、实验原理熟悉并掌握嵌入式Linux操作系统的相关知识。
三、实验设备计算机。
四、实验步骤1、安装Vmware Workstation虚拟机工作平台;2、在Vmware Workstation虚拟机工作平台新建一个虚拟机Virtual Machine;3、安装Fedora 11 Linux操作系统;4、安装Vmware Tools;5、设置共享文件夹;五、实验报告要求1、画出实验的工作流程图;2、结合每个实验步骤的关键画面,详细描述Linux操作系统的环境搭建;3、针对实验中遇到的问题,分析原因,并给出解决问题的办法。
六、注意事项实验中禁止带电插拔元器件。
实验二 OMAP3530基本接口实验一、实验目的掌握OMAP3530的IO口、定时器、串口、USB和LCD等外设的使用。
二、实验原理熟读OMAP3530硬件手册的相关内容,掌握相关部件的寄存器使用方法。
三、实验设备1、OMAP3530嵌入式系统实验箱;2、计算机。
四、实验步骤1、LED测试主板上的LEDB、LED1、LED2和LED3为用户LED灯。
在串口助手中输入如下命令点亮LEDB:在串口助手中输入如下命令熄灭LEDB:LEDB会随着用户的操作进行亮灭。
2、触摸屏测试在串口助手中输入以下指令执行触摸屏校准程序:按照屏幕上提示,点击“+”图标5次完成校准。
嵌入式系统实验指导书

福建农林大学计算机与信息学院信息工程类实验报告课程名称:嵌入式系统姓名:系:专业:年级:学号:指导教师:职称:年月日实验项目列表序号实验项目名称成绩指导教师1 搭建实验环境罗超2 HelloWorld 罗超3 编译Bootloader 罗超编译Bootloader实验一搭建实验环境一、实验目的1.正确连接宿主PC机与PXA270-EP目标板。
2.建立宿主 PC机端的开发环境。
3.配置宿主 PC机端的minicom,使宿主PC机与PXA270-EP目标板可以通过串口通讯。
4.配置宿主 PC机端的TFTP服务,并开通此服务。
5.配置宿主P机端的NFS 服务,并开通此服务。
二、实验内容1.参照本实验指导书所列的步骤,一步一步地完成宿主PC机与PXA270-EP目标板的连接。
2.参照本实验指导书给出的步骤,一步一步地完成宿主机端开发环境的安装与配置。
3.参照本实验指导书给出的步骤,一步一步地完成minicom的配置。
4.参照本实验指导书给出的步骤,一步一步地完成TFTP服务的配置。
5.参照本实验指导书给出的步骤,一步一步地完成NFS服务的配置。
三、实验设备1.一套PXA270EP嵌入式实验箱。
2.安装Redhat9的宿主PC机,并且配置好ARM Linux的开发环境。
四、预备知识1.串口(COM1)、并口(LTP1)、网口(Ethernet)的基本知识。
2.Linux 基本命令。
五、实验原理及说明绝大多数的Linux 软件开发都是以native 方式进行的,即本机(HOST)开发、调试,本机运行的方式。
这种方式通常不适合于嵌入式系统的软件开发,因为对于嵌入式系统的开发,没有足够的资源在本机(即板上系统)运行开发工具和调试工具。
通常嵌入式系统软件的开发采用交叉编译调试的方式。
交叉编译调试环境建立在宿主机(即一台PC 机)上,对应的开发板叫做目标板,如图1-1。
图1-1开发时使用宿主机上的交叉编译、汇编及连接工具形成可执行的二进制代码,(这种可执行代码并不能在宿主机上执行,而只能在目标板上执行。
《嵌入式系统》实验报告指导书(含答案).

实验一熟悉嵌入式LINUX开发环境1、实验目的熟悉UP-TECHPXA270-S的开发环境。
学会WINDOWS环境与嵌入式Linu环境共享资源的基本方法。
2、实验内容学习UP-TECHPXA270-S系统的使用、XP和虚拟机之间传送文件方法以及UP-TECHPXA270-S和虚拟机之间共享目录的建立方法。
3、预备知识了解UP-TECHPXA270-S的基本结构和配置,Linux基本知识。
4、实验设备硬件:UP-TECHPXA270-S开发板、PC机(内存500M以上)。
软件:PC机操作系统RADHAND LINUX 9+MIMICOM+RAM LINUX操作系统5、实验步骤(1)、在虚拟机下练习Linux常用命令。
(注意以下操作只能在[root@BC root]#,也就是root文件夹下运行,不然会导致系统不能启动)a. 学习命令通过“man ***”和“*** --help”得到的命令使用方法。
b.学习并掌握如下命令:ls,cd ,pwd,cat,more,less,mkdir, rmdir ,rm,mv,cp,tar,ifconfig(2)、XP与虚拟机之间传送文件(Samba服务器建立、网络设置、文件传送);(3)、了解系统资源和连线;(4)、开发板与虚拟机之间共享目录建立(设置NFS、开发板IP设置、目录挂载),挂载文件;(5)vi(vim)的使用(6)输入qt,启动桌面,按CTRL+C退出6、实验报告要求(1)、XP和虚拟机之间传送文件步骤;虚拟机共享XP文件:选择虚拟机设置,设置要共享的文件启动Linux进入/mnt/hgfs即可看到共享文件夹服务器设置——samba服务器(设置需要共享的目录)XP共享虚拟机文件:服务器设置——samba服务器(设置需要共享的目录)确保网络的PING通(即在同一局域网):1.虚拟机的192.168.1.234(RH9)2.XP的为192.168.1.1253.在XP 下点击开始-》运行(\\192.168.1.234)4.用户名bc密码123456以上实现了Linux虚拟机(RH9)和XP的文件的共享(2)、开发板与虚拟机之间建立共享目录以及文件挂载步骤;1.服务器设置——nfs服务器(设置需要共享的目录)2.设置开发板的ip地址:ifconfig eth0 192.168.1.53.在实验箱终端里输入mount -t nfs -o nolock 192.168.1.234:/up-techpxa270/exp /mnt/nfs4./mnt/nfs即为共享目录(3)、请画出虚拟机、PC机和ARM实验箱之间的硬件连接图;(4)、在Linux中怎样配置网络;系统设置->网络,在新的选项卡中(5)、实验中遇到的问题与解决过程。
嵌入式操作系统实验指导书

《嵌入式操作系统》实验指导书实验1 Linux编程基础实验序号:1 实验名称:Linux编程基础适用专业:计算机科学与技术、通信工程学时数:4学时一、实验目的1、熟悉Vim的工作模式,熟练使用vim中的常见操作。
2、熟练掌握gcc编译命令及gdb的调试命令,通过对有问题程序的跟踪调试,进一步提高发现问题和解决问题的能力。
3、熟悉多文件的makefile的编写,熟悉各种形式的makefile,并且进一步加深对makefile中用户自定义变量、自动变量的理解。
4、使用autotools生成多文件的makefile,进一步掌握autotools的使用方法。
二、实验内容1、vim使用练习(1)在“/root”目录下建一个名为“vim”的目录。
(2)进入“vim”目录。
(3)将文件“/etc/inittab”复制到“vim”目录下。
(4)使用vim打开“vim”目录下的inittab.(5)设定行号,指出设定initdefault(类似于“id:5:initdefault”)的所在行号。
(6)将光标移到该行。
(7)复制该行内容。
(8)将光标移到最后一行行首。
(9)粘贴复制行的内容。
(10)撤销第9步的动作。
(11)将光标移动到最后一行的行尾。
(12)粘贴复制行的内容。
(13)光标移到“si::sysinit:/etc/rc.d/rc.sysinit”。
(14)删除该行。
(15)存盘但不退出。
(16)将光标移到首行。
(17)插入模式下输入“Hello,this is vi world!”.(18)返回命令行模式。
(19)向下查找字符串“0:wait”。
(20)再向上查找字符串“halt”。
(21)强制退出vim,不存盘。
2、用gdb调试程序的bug(1)使用vi编辑器,将以下代码输入到名为greet.c的文件中。
此代码的原意为输出倒序main函数中定义的字符串,但结果显示没有输出,代码如下所示。
#include<stdio.h>int display1(char *string);int display2(char *string);int main(){char string[]=”Embedded Linux”;display1(string);display2(string);}int display1(char *string){printf(“The original string is %s \n”,string);}int display2(char *string1){char *string2;int size,i;size=strlen(string1);string2=(char *)malloc(size+1);for (i=0,i<size;i++){string2[size-i]=string[i];}string2[size+1]=’’;printf(“The string afterward is %s\n”,string2);}(2)使用gcc编译这段代码,注意要加上“-g”选项以方便之后的调试。
嵌入式系统实验指导书_2013_5_2

实验一:ADS1.2集成开发环境练习(注:实验一“ADS1.2集成开发环境练习”为必做内容,选作实验一“汇编指令实验1”为选做内容。
)1.实验目的●了解ADS 1.2集成开发环境的使用方法。
●掌握ARM7TDMI汇编指令的用法.并能编写简单的汇编程序。
●建立汇编源程序文件、建立工程以及工程编译连接。
2.实验设备●硬件:PC机一台●软件:Windows XP系统,ADS 1.2集成开发环境3.实验内容(1) 建立一个新的工程。
(2) 建立一个汇编源程序文件,并添加到工程中。
(3) 设置编译链接控制选项。
(4) 编译链接工程。
4.实验预习要求仔细阅读“ADS1.2集成开发环境练习”实验指导书。
5.实验步骤①启动ADSl.2 IDE集成开发环境,选择File→New,使用ARM Executable Image工程模板建立一个工程,工程名称为ADS,见图1.1。
②选择File→New建立一个新的文件TESTl.S,设置直接添加到项目中,见图1.2。
输入如程序清单1.1所示的代码并保存。
程序清单1.1 TESTl.S文件代码③选择Edit→DebugRel Settings,在DebugRel Settings对话框的左边选择ARM Linker项,然后在Output页设置连接地址(见图1.3),在Options页设置调试入口地址(见图1.4)。
④选择Project→Make.将编译链接整个工程。
1.1建立ARM指令代码的工程1.2 新建文件TESTl.S图1.3 工程连接地址设置图1.4 工程调试入口地址设置6.思考(1) 工程模板有哪些作用? (例如:本实验中使用的“ARM Executable Image”工程模板。
)ADS工程文件的设置比较复杂,不同的实验板、开发板由于硬件电路结构和资源不同,需要进行不同的设置,而对于同一实验板,则启动文件、ADS工程文件的配置及主要的初始化代码是相对固定的,因此可以把这些相关文件按一定方式组织起来,称为工作模板。
嵌入式系统实验指导书(KeilC51平台)

目录目录 (I)实验一、 uC/OSII移植及时钟中断和时间管理 (1)实验二、利用信号量和邮箱实现多任务间同步 (I)实验三、信号量集与内存动态分配的应用................................ 1实验一、 uC/OSII移植及时钟中断和时间管理实验项目名称:uC/OSII移植及时钟中断和时间管理实验项目性质:普通性所属课程名称:嵌入式系统实验计划学时:2实验目的熟悉uCOSII的移植方法,了解任务切换的过程;掌握创建任务和启动任务的方法;了解uCOSII的中断过程,学会使用时间管理函数;实验设备计算机,Keil C51软件实验步骤与内容1、参照KeilC51帮助文件,新建工程EXP1,选取器件为Philips公司的P89C51RD2Hxx,依次按顺序添加工程文件Exp1.c, OS_CPU_C.c, UCOS_II.c, OS_CPU_A.asm, Startup.asm, serial.c, C51L.LIB,编译前按照下图所示设置:编译工程;2、运行调试参考例程EXP1;3、在理解EXP1基础上,完成以下实验任务:在时钟中断里调用供用户自己编写服务代码的函数OSTimeTickHook(),计算MyTask任务的剩余时间(也就是MyTask调用OSTimeDly进入等待状态后的等待时间节拍数),把剩余时间输出到Serial Window#1上(KeilC51串口数据输出窗口)。
4、填写实验报告。
实验结果:参考例程EXP1结果如下图示:实验二、利用信号量和邮箱实现多任务间同步实验项目名称:利用信号量和邮箱实现多任务间同步实验项目性质:普通性所属课程名称:嵌入式系统实验计划学时:2实验目的熟悉多任务的创建;掌握利用信号量实现多任务同步的方法;掌握利用邮箱实现多任务间数据传递的方法;实验设备计算机,Keil C51软件实验步骤与内容1、参照KeilC51帮助文件,新建工程EXP2,选取器件为Philips公司的P89C51RD2Hxx,依次按顺序添加工程文件Exp2.c, OS_CPU_C.c, UCOS_II.c, OS_CPU_A.asm, Startup.asm, serial.c, C51L.LIB,其他设置参考实验一,然后编译工程;2、运行调试参考例程;3、在理解参考例程EXP2的基础上,完成以下实验任务:(1)在时钟中断里调用的供用户自己编写服务代码的函数OSTimeTickHook()里计算StartTask任务的剩余时间,把剩余时间用邮箱发送到MyTask显示;(2)计算YouTask的运行次数,用邮箱发送到HerTask显示;(3)MyTask和HerTask使用互斥信号量实现共享函数Fun()的访问。
嵌入式系统实验指导指导书完整版

嵌入式系统实验指导王艳春李英一张劲松实验一嵌入式微处理器系统的开发环境一、实验环境PC机一台软件: ADS 1.2集成开发环境一套二、实验目的1.了解嵌入式系统及其特点;2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序三、实验内容1.嵌入式系统的开发环境、基本配置2.使用汇编指令完成简单的加法实验四、实验步骤(1)在D:\新建一个目录,目录名为experiment。
(2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。
启动ADS 1.2 如图1-1所示:图1-1启动ADS1.2(3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New…”菜单。
这样就会打开一个如图1-2 所示的对话框。
选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。
图1-2 新建文件在这个对话框中为用户提供了7 种可选择的工程类型:1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库;3)Empty Project:用于创建一个不包含任何库或源文件的工程;4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件;5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件;6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式系统实验指导王艳春英一劲松实验一嵌入式微处理器系统的开发环境一、实验环境PC机一台软件: ADS 1.2集成开发环境一套二、实验目的1.了解嵌入式系统及其特点;2.熟悉嵌入式系统的开发环境和基本配置并能编写简单的汇编程序三、实验容1.嵌入式系统的开发环境、基本配置2.使用汇编指令完成简单的加法实验四、实验步骤(1)在D:\新建一个目录,目录名为experiment。
(2)点击 WINDOWS 操作系统的“开始|程序|ARM Developer Suite v1.2 |Code Warrior for ARM Developer Suite”启动Metrowerks Code Warrior,或双击“ADS 1.2”快捷方式启动。
启动ADS 1.2 如图1-1所示:图1-1启动ADS1.2(3) 在CodeWarrior 中新建一个工程的方法有两种,可以在工具栏中单击“New”按钮,也可以在“File”菜单中选择“New…”菜单。
这样就会打开一个如图1-2 所示的对话框。
选择【File】->【New…】,使用ARM Executable Image工程模板建立一个工程,名称为ADS,目录为D:\experiment。
图1-2 新建文件在这个对话框中为用户提供了7 种可选择的工程类型:1)ARM Executabl Image:用于由ARM 指令的代码生成一个ELF 格式的可执行映像文件;2)ARM Object Library:用于由ARM 指令的代码生成一个armar 格式的目标文件库;3)Empty Project:用于创建一个不包含任何库或源文件的工程;4)Makefile Importer Wizard:用于将Visual C 的nmake 或GNU make 文件转入到CodeWarrior IDE 工程文件;5)Thumb ARM Executable Image:用于由ARM 指令和Thumb 指令的混和代码生成一个可执行的ELF 格式的映像文件;6)Thumb Executable image:用于由Thumb 指令创建一个可执行的ELF 格式的映像文件;7)Thumb Object Library:用于由Thumb 指令的代码生成一个armar 格式的目标文件库。
(4)选择【File】->【New…】建立一个新的文件TEST1.S,设置直接添加到项目中。
输入如程序代码,并保存,此时在工程窗口中可以看到TEST1.S文件。
图1-3 新建test1.s(5) 选择【Edit】->【Perferences…】,在Font选项设置字体是Fixedsys,Script是CHINESE_GB2312。
图1-4 设置字体(6) 选择【Edit】->【DebugRel Settings…】,在DebugRel Settings对话框的左边选择ARM Linker项,设置地址。
点击“DebugRel Settings…”图标按钮,即可进行工程的地址设置、输出文件设置、编译选项等,如图1-5所示。
在“ARM Linker”对话框设置连接地址,在“Language Settings”中设置各编译器的编译选项。
对于简单的软件调试,可以不进行连接地址的设置,直接点击工程窗口的“Make”图标按钮,即可完成编译连接。
若编译出错,会有相应的出错提示,双击出错提示行信息,编辑窗即会使用光标指出当前出错的源代码行,编译连接输出窗口如图1-6所示。
同样,您可以在【Project】菜单中找到相应的命令。
图1-5连接器选项设置图1-6 output选项卡OUTPUT 选项卡:该选项卡用来控制连接器进行连接操作的类型。
其中Linktype 选项组中的单选按钮确定使用的连接方式。
这里选择Simple,连接器将根据连接器选项中指定的地址映射方式,生成简单的ELF 格式的映像文件,所生成的映像文件中的地址映射关系比较简单.当选择Simple 连接类型时,需要设置下列的连接器选项,如图1-5所示。
RO Base 文本框中填入0x40000000。
地址0x40000000 是开发板上SDRAM 的真实地址,是由系统的硬件决定的;RW Base 文本框中填入0x40003000 指的是系统可读写存的地址。
也就是说,在0x40000000-0x40003000 之间是只读区域,存放程序的代码段,从0x40003000 开始是程序的数据段。
Layout 选项卡:该选项卡在连接方式位Simple 时有效,它用来安排一些输入段在映像文件中的位置。
Place at beginning of image 选项组用于指定将某个输入段放置在它所在的运行时域的开头。
包含复位异常中断处理程序的输入段通常放置在运行时域的开头。
这里,在Object/Symbol 文本框中指定目标文件的名称init.o,在Section 文本框中指定输入段的名称init,从而确定了init.s 源文件中的init 输入段位指定的输入段。
如图1-7所示。
图 1-7 Layout 选项卡中连接器选项(6) 选择【Project】->【Make】,或者按下快捷键F7,将编译整个工程。
如图 1-8所示为工程窗口中的图标按钮,通过这些图标按钮,可以快速的进行工程设置,编译连接,启动调试等等.它们从左到右分别为图1-8 工程窗口中的图标按钮A)DebugRel Settings… 工程设置;B)Synchronize Modification Dates 同步修改日期;C)Make 编译连接;D)Debug 启动ADX 进行调试;E)Run 启动ADX 调试,并直接运行;F)Project Inspector 工程检查,查看和配置工程中源文件的信息;对于简单的软件调试,直接点击工程窗口的”Make”图标按钮,即可完成编译.编译连接输出窗口如图1-9所示。
图1-9编译连接输出窗口(7) 选择【Project】->【Debug】,或者按下快捷键F5。
IDE环境就会启动AXD调试软件,接着可以执行单步、全速运行调试。
图1-10 AXD调试窗口注意:本实验使用软件仿真,所以要在AXD中选择【Options】->【Configure Target…】菜单,然后在 Choose Target窗口中选用ARMUL软件仿真。
图1-11 目标环境选择五思考题1.工程模板有何作用?2.如何强行重新编译工程的所有文件?(提示:选择【Project】->【Remove Object Code…】删除工程中的*.obj文件)六参考程序AREA Example1,CODE,READONLY ; 声明代码段Example1ENTRY ; 标识程序入口CODE32 ; 声明32位ARM指令START MOV R0,#15 ; 设置参数MOV R1,#8ADDS R0,R0,R1 ; R0 = R0 + R1B STARTEND实验预作关键过程及结果图:实验二汇编指令实验一、实验环境PC机一台ADS 1.2集成开发环境一套二、实验目的1.了解ADS 1.2集成开发环境及ARMulator软件仿真方法;2. 掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序;3.掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。
三、实验容1.使用LDR/STR指令完成存储器的访问。
2.使用数据处理指令实现数据传送和算术和逻辑运算。
3.使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(ProcessorRegisters)监视寄存器的值,打开存储器观察窗口(Memory) 监视存储器的值。
根据以上要求完成该操作:使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指令把结果写回原地址,若结果大于等于10,则把0写回原地址……周而复此循环;使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor Registers)监视R0、R1的值,打开存储器观察窗口(Memory) 监视0x40003100上的值。
四、实验步骤(1) 启动ADS 1.2,使用ARM Executable Image工程模板建立一个工程Instruction1。
(2) 建立汇编源文件TEST2.S,编写实验程序,然后添加到工程中。
(3) 设置工程地址RO Base为0x40000000,RW Base为0x40003000。
设置调试入口地址Image entry point为0x40000000。
(4) 编译工程,选择【Project】->【Debug】,启动AXD进行软件仿真调试。
(5) 打开寄存器窗口(Processor Registers),选择Current 项监视R0,R1 的值。
打开存储器观察窗口(Memory),设置观察地址为0x40003100,显示方式Size 为32Bit,监视0x40003100 地址上的值。
图2-1 Memory 窗口显示格式设置寄存器显示格式与之类似。
使用鼠标左键选择某一个寄存器,然后点击鼠标右键,Format项中选择显示格式Hex,Decimal 等等。
如图2-2 所示。
图2-2设置寄存器显示格式(6)单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,调试时观察寄存器和0x40003100地址上的值。
图2-3 调试程序窗口六、思考题1.LDR伪指令与LDR加载指令的功能和应用有何区别,举例说明?2.LDR/STR指令的前索引偏移指令如何编写?指令是怎样操作的?3.在AXD调试时如何复位程序?(提示:选择【File】->【Reload Current Image】重新加载映象文件) 七、参考程序COUNT EQU 0x40003100 ; 定义一个变量,地址为0x40003100AREA Example2,CODE,READONLY ; 声明代码段Example2ENTRY ; 标识程序入口CODE32 ; 声明32位ARM指令START LDR R1,=COUNT ; R1 <= COUNTMOV R0,#0 ; R0 <= 0STR R0,[R1] ; [R1] <= R0,即设置COUNT为0LOOP LDR R1,=COUNTLDR R0,[R1] ; R0 <= [R1]ADD R0,R0,#1 ; R0 <= R0 + 1CMP R0,#10 ; R0与10比较,影响条件码标志MOVHS R0,#0 ; 若R0大于等于10,则此指令执行,R0 <= 0STR R0,[R1] ; [R1] <= R0,即保存COUNTB LOOPEND实验预作关键过程及结果图:单步运行观看寄存器和存储器的变化:具体指令讲解见指令手册。