微机原理与嵌入式系统基础实验文档格式.docx
《微机原理与嵌入式系统基础实验文档格式.docx》由会员分享,可在线阅读,更多相关《微机原理与嵌入式系统基础实验文档格式.docx(56页珍藏版)》请在冰豆网上搜索。
3
第1章ADS1.2IDE工具简介
1.1ADS1.2简介
ARMADS全称为ARMDeveloperSuite,是由ARM公司提供的专门用于ARM处理器
应用开发和调试的综合性工具软件。
目前使用的ADS1.2版本是一款功能强大的开发工具和
易于使用的集成开发环境(IntegratedDevelopmentEnvironment,IDE)。
它可以安装在Windows
NT4,Windows2000,Windows98,Windows95,WindowsXP和WindowsMe等操作系统。
ADS主要包含CodeWarriorIDE、AXD两部分;
①CodeWarriorIDE工具主要用于工程的管理配置、源程序的编辑、编译和链接;
嵌入
式系统开发人员在此环境中,用C、C++或ARM汇编语言编写ARM和Thumb处理器源程
序,将源代码文件、库文件、其他相关的文件以及编译环境设置等组织在一个工程中,并可
以设置生成在SRAM调试(DebugInSRAM)、在Flash调试(DebugInFLASE)或发布版
(RelInFLASH)等不同的生成目标。
各生成目标在同一个工程中共享源文件、库文件等,
便于用户在不同开发阶段的使用。
工具界面参见图1-1。
图1-1CodeWarriorIDE视窗
②AXD主要用于工程的下载和调试。
嵌入式系统开发人员使用此工具软件可以对用户
程序进行诸如断点的设置与清除、程序运行控制、单步执行、寄存器数据监视和变量的查看
等调试操作。
另外,AXD挂接在CodeWarriorIDE中,用户可在CodeWarriorIDE中直接点
击启动AXD,调试用户程序;
也可以单独启动AXD,加载、调试用户代码。
工具界面参见
图1-2。
4
图1-2AXD视窗
1.2ADS1.2集成开发环境练习
1.实验目的
学习ADS1.2集成开发环境的使用方法。
2.实验设备
硬件:
PC机一台
软件:
Windows98/XP/2000系统,ADS1.2集成开发环境
3.实验内容
(1)ADS的启动;
(2)使用asmforlpc2131工程模板,建立一个新的工程。
(3)在模板文件main.S文件中,加入用户汇编代码。
(4)编译链接工程。
(5)调试工程。
(6)学习ADS工具的使用。
4.实验预习要求
阅读《ADS集成开发环境及仿真器应用》文档或其它相关资料,了解系统调试技术,
了解ADS、AXD的基本功能。
5.实验步骤
①启动ADS1.2IDE集成开发环境。
5
图1-3启动ADS
②在ADS主窗口主菜单选择File->
New,使用asmforlpc2131工程模板建立一个工程
(图例中工程名称为:
ZQL_LIB1),指定工程路径(图例中工程路径为
D:
\ARM_Lib_Bak\ARM_asm)。
图1-4使用模板在ADS中创建工程
③点击确认<
按钮>
,创建工程。
④在ZQL_LIB1工程窗口,双击模板文件main.S,打开该文件。
图1-5ADS工程管理器
⑤可在主窗口菜单选择Edit->
Perferences,设置字体和字号。
⑥在main.S文件编辑窗的“addtheusercodehere.添加用户代码”行下建立用户汇
编程序代码。
可选用的工程模
板列表
6
图1-6ADS视窗的主要组成
⑦选择Project->
Make(或快捷键<
F7>
),编译链接整个工程。
若编译成功,则Erros&
Warnings对话框会报告编译错误为0,此时即可对工程进行仿真。
图1-7ADS主菜单
在此处添加用户代码
用户代码编辑窗
用户工程窗
ADS窗口
主菜单
ADS窗口工具条行
7
图1-8ADS编译报告窗口
⑧选择Project->
Debug(或快捷键<
F5>
),IDE环境就会启动AXD调试软件。
图1-9从ADS中启动AXD
编译报告窗口
8
图1-10AXD工具窗口的主要构成
6.调试方法
①单步运行;
在AXD调试器主窗口,选择Execute->
Step(或快捷键<
F10>
),处理
器执行一行代码;
②设置断点;
在AXD调试器“代码调试窗口”双击目标代码行,若出现红色实心圆
点,则表示断点设置成功;
然后选择Execute->
Go全速运行,处理器执行程序停止
在断点行;
③运行到光标行;
在AXD调试器“代码调试窗口”单击选择目标代码行,然后在AXD
调试器主窗口,选择Execute->
RuntoCursor运行到光标处;
通过断点调试可以观察
ARM寄存器和存储单元的数值变化,具体操作方法在后面的实验中会作详细介绍。
AXD寄存器窗口,
可点击打开各模式
寄存器集
AXD内存显示窗口
蓝色箭头指向当前待执行指令
执行控制工具图标
9
图1-11AXD工具调试用户代码与查看内存
7.思考
(1)工程模板有哪些作用?
(提示:
对照VCStudioIDE。
)
(2)如何强行重新编译工程的所有文件?
选择Project->
RemoveObjectCode删
除工程中的*.obj文件。
AXD调试窗口
AXD调试代码窗口
指定显示内存的地址空间
10
第2章ARM指令系统及运算基础实验
2.1二进制数加减运算
了解ADS1.2集成开发环境及ARMulator软件仿真。
掌握ARM7TDMI常用汇编指令的用法,并能编写简单的汇编程序。
学习使用LDR/STR/ADD/SUB指令完成存储器的访问及二进制数据加减运算。
领会处理器进行数据处理的方式原理。
(1)使用LDR指令读取Data1、Data2数据,完成两数相加/减,将结果写入到Data3单
元。
(2)使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor
Registers)监视R0和R1的值,打开存储器观察窗口(Memory)监视Data1、Data2和Data3
存储单元的值。
学习ADS工程编辑和AXD调试工具的使用,二进制运算,处理器运行原理。
①启动ADS1.2IDE集成开发环境,选择asmforlpc2131工程模板建立一个工程
TEST2。
②在模板文件main.S中,补加用户代码,编写实验程序,保存。
③选择主窗口菜单Project->
Make(或直接快捷键<
),联编工程;
④联编无错后,选择主窗口菜单Project->
Debug,启动AXD进行软件仿真调试。
⑤注意首次使用AXD时,需要设置AXD仿真环境,AXD主菜单:
选择
Options->
ConfigureTarget…,打开ChooseTarget窗口,并在其中选择:
ARMUL仿
真器;
方法如下图示:
备注:
ARMUL仿真器是AXD环境下的软件仿真器,在PC机上仿真了ARM处理器的
执行情况;
可用于软件算法调试,不能仿真硬件外设系统。
11
图2-1为AXD配置仿真环境
图2-2配置AXD使用软件仿真
⑥打开寄存器窗口(Registers),选择Current项,监视R0、R1和R2的值。
打开存储
器观察窗口(Memory)设置观察Data1、Data2和Data3单元值,显示方式Size为
32bit。
6.实验参考程序
Data3=Data1+Data2运算汇编指令实验1的参考程序见程序清单2-1
程序清单2-1汇编指令实验1参考程序
AREAExample1,CODE,READONLY;
声明代码段Example1
配置AXD目标
配置AXD使用
ARMUL软件仿真器
12
ENTRY;
标识程序入口
CODE32;
声明32位ARM指令
STARTLDRR11,=Data1;
R11<
=address(Data1)
LDRR0,[R11];
R0<
=Data1
LDRR11,=Data2;
=address(Data2)
LDRR1,[R11];
=Data2
ADDR2,R1,R0
LDRR11,=Data3;
=address(Data3)
STRR2,[R11];
[R1]<
=R2,即设置COUNT为0
HALTBHALT
Data1DCD0x12345678
Data2DCD0x87654321
Data3DCD0x00
END
Data3=Data2-Data1运算汇编指令实验2的参考程序见程序清单2-2。
程序清单2-2汇编指令实验2参考程序
SUBR2,R1,R0
STRR2,[R11];
(1)LDR伪指令与LDR加载指令的功能和应用有哪些区别,举例说明?
LDR
伪指令的形式为“LDRRn,=expr”。
(2)LDR/STR指令的前索引偏移指令应如何编写?
指令是怎样操作的?
(3)在AXD调试是如何复位程序?
选择File->
ReloadCurrentImage重新加载映
像文件。
13
2.2带符号数的加减法运算
学习使用LDR/STR/ADD/SUB指令完成存储器的访问及带负号数的加减运算。
领会处理器进行数据处理的方式原理及符号数的表示与运算。
(3)注意观察“CPSR_标志位”的情况,领会CPSR标志位的工作情况与含义;
(4)注意观察符号数的计算机表示方式;
学习ADS工程编辑和AXD调试工具的使用,符号数的表示与运算,处理器运行原理。
(1)启动ADS1.2IDE集成开发环境,选择asmforlpc2131工程模板建立一个工程TEST2。
(2)在模板文件main.S中,补加用户代码,编写实验程序,保存。
(3)选择主窗口菜单Project->
(4)联编无错后,选择主窗口菜单Project->
(5)打开寄存器窗口(Registers),选择Current项,监视R0、R1和R2的值。
器观察窗口(Memory)设置观察Data1、Data2和Data3单元值,显示方式Size为32bit,
注意观察CPSR寄存器中的各标志位的情况。
Data3=Data1+Data2运算汇编指令实验1的参考程序见程序清单2-3。
程序清单2-3汇编指令实验3参考程序
INCLUDELPC2294.INC;
Includetheheadfile引入头文件
;
声明MAIN函数
ExportMAINfuncton
EXPORTMAIN;
MAINFunction主程序
CODE32
AREAmain,CODE,READONLY;
14
ENTRY;
MAIN
addtheusercodehere.添加用户代码
LDRR11,=Data1;
ADDSR2,R1,R0
Data1DCD-18
Data2DCD6
Data3DCD0
Data3=Data2-Data1运算汇编指令实验4的参考程序见程序清单2-4。
程序清单2-4汇编指令实验4参考程序
SUBSR2,R1,R0
15
Data1DCD0x87654321
Data2DCD0x12345678
(1)模拟32bit处理器对带符号数(63)+(-65)在计算机中的表示与运算。
(2)参考程序清单中关于加减法指令,如果不加S后缀的话,对CPSR会有什么影响?
2.3简单分支程序设计
掌握ARM条件执行指令的使用方法,学习分支程序设计。
加深领会处理器可以自动区分情况进行数据处理的方式原理。
使用条件执行指令编写完成下述C代码功能的分支程序。
if(x==y)z=a+b;
elseif(x<
y)z=a–b;
elsez=b–a;
分支程序设计,ARM指令条件执行等相关知识。
①启动ADS1.2IDE集成开发环境,选择asmforlpc2131工程模板,建立工程TEST3。
②在模板文件main