微机原理与嵌入式系统基础实验.docx
- 文档编号:5280409
- 上传时间:2022-12-14
- 格式:DOCX
- 页数:56
- 大小:37.92KB
微机原理与嵌入式系统基础实验.docx
《微机原理与嵌入式系统基础实验.docx》由会员分享,可在线阅读,更多相关《微机原理与嵌入式系统基础实验.docx(56页珍藏版)》请在冰豆网上搜索。
微机原理与嵌入式系统基础实验
微机原理与嵌入式系统基础
实验指导
嵌入式系统教研室
2010年4月7日
西安邮电学院计算机系嵌入式系统教研室
2
第1章ADS1.2IDE工具简介................................................................................3
1.1ADS1.2简介................................................................................................................3
1.2ADS1.2集成开发环境练习........................................................................................4
第2章ARM指令系统及运算基础实验..................................................................10
2.1二进制数加减运算.....................................................................................................10
2.2带符号数的加减法运算.............................................................................................13
2.3简单分支程序设计.....................................................................................................15
2.4数据块转储实验(循环程序设计).........................................................................16
2.5数值1到数值100的累加程序设计.........................................................................18
2.6搜寻最大数、最小数程序设计.................................................................................19
2.7子程序实验.................................................................................................................21
第3章ARM(LPC2000系列)体系结构实验.......................................................24
3.1EasyARM2131实验板简介.......................................................................................24
3.2JTAG仿真器的启动与设置......................................................................................24
3.3基于嵌入式系统的C语言程序实验........................................................................26
3.4GPIO输出控制实验1(单点)................................................................................27
3.5GPIO输出控制实验2(多点)................................................................................29
3.6GPIO输入实验..........................................................................................................31
3.7外中断实验.................................................................................................................33
3.8定时器基本功能实验1(匹配反转输出功能应用)..............................................35
3.9定时器基本功能实验2(定时器中断)..................................................................37
3.10UART串行数据通信实验1(查询方式)..............................................................39
3.11UART串行数据通信实验2(中断方式).............................................................42
西安邮电学院计算机系嵌入式系统教研室
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(或快捷键
若编译成功,则Erros&
Warnings对话框会报告编译错误为0,此时即可对工程进行仿真。
图1-7ADS主菜单
在此处添加用户代码
用户代码编辑窗
用户工程窗
ADS窗口
主菜单
ADS窗口工具条行
西安邮电学院计算机系嵌入式系统教研室
7
图1-8ADS编译报告窗口
⑧选择Project->Debug(或快捷键
图1-9从ADS中启动AXD
编译报告窗口
西安邮电学院计算机系嵌入式系统教研室
8
图1-10AXD工具窗口的主要构成
6.调试方法
①单步运行;在AXD调试器主窗口,选择Execute->Step(或快捷键
器执行一行代码;
②设置断点;在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二进制数加减运算
1.实验目的
了解ADS1.2集成开发环境及ARMulator软件仿真。
掌握ARM7TDMI常用汇编指令的用法,并能编写简单的汇编程序。
学习使用LDR/STR/ADD/SUB指令完成存储器的访问及二进制数据加减运算。
领会处理器进行数据处理的方式原理。
2.实验设备
硬件:
PC机一台
软件:
Windows98/XP/2000系统,ADS1.2集成开发环境
3.实验内容
(1)使用LDR指令读取Data1、Data2数据,完成两数相加/减,将结果写入到Data3单
元。
(2)使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor
Registers)监视R0和R1的值,打开存储器观察窗口(Memory)监视Data1、Data2和Data3
存储单元的值。
4.实验预习要求
学习ADS工程编辑和AXD调试工具的使用,二进制运算,处理器运行原理。
5.实验步骤
①启动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;R11<=address(Data2)
LDRR1,[R11];R0<=Data2
ADDR2,R1,R0
LDRR11,=Data3;R11<=address(Data3)
STRR2,[R11];[R1]<=R2,即设置COUNT为0
HALTBHALT
Data1DCD0x12345678
Data2DCD0x87654321
Data3DCD0x00
END
Data3=Data2-Data1运算汇编指令实验2的参考程序见程序清单2-2。
程序清单2-2汇编指令实验2参考程序
AREAExample1,CODE,READONLY;声明代码段Example1
ENTRY;标识程序入口
CODE32;声明32位ARM指令
STARTLDRR11,=Data1;R11<=address(Data1)
LDRR0,[R11];R0<=Data1
LDRR11,=Data2;R11<=address(Data2)
LDRR1,[R11];R0<=Data2
SUBR2,R1,R0
LDRR11,=Data3;R11<=address(Data3)
STRR2,[R11];[R1]<=R2,即设置COUNT为0
HALTBHALT
Data1DCD0x12345678
Data2DCD0x87654321
Data3DCD0x00
END
7.思考
(1)LDR伪指令与LDR加载指令的功能和应用有哪些区别,举例说明?
(提示:
LDR
伪指令的形式为“LDRRn,=expr”。
)
(2)LDR/STR指令的前索引偏移指令应如何编写?
指令是怎样操作的?
(3)在AXD调试是如何复位程序?
(提示:
选择File->ReloadCurrentImage重新加载映
像文件。
)
西安邮电学院计算机系嵌入式系统教研室
13
2.2带符号数的加减法运算
1.实验目的
了解ADS1.2集成开发环境及ARMulator软件仿真。
掌握ARM7TDMI常用汇编指令的用法,并能编写简单的汇编程序。
学习使用LDR/STR/ADD/SUB指令完成存储器的访问及带负号数的加减运算。
领会处理器进行数据处理的方式原理及符号数的表示与运算。
2.实验设备
硬件:
PC机一台
软件:
Windows98/XP/2000系统,ADS1.2集成开发环境
3.实验内容
(1)使用LDR指令读取Data1、Data2数据,完成两数相加/减,将结果写入到Data3单
元。
(2)使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor
Registers)监视R0和R1的值,打开存储器观察窗口(Memory)监视Data1、Data2和Data3
存储单元的值。
(3)注意观察“CPSR_标志位”的情况,领会CPSR标志位的工作情况与含义;
(4)注意观察符号数的计算机表示方式;
4.实验预习要求
学习ADS工程编辑和AXD调试工具的使用,符号数的表示与运算,处理器运行原理。
5.实验步骤
(1)启动ADS1.2IDE集成开发环境,选择asmforlpc2131工程模板建立一个工程TEST2。
(2)在模板文件main.S中,补加用户代码,编写实验程序,保存。
(3)选择主窗口菜单Project->Make(或直接快捷键
(4)联编无错后,选择主窗口菜单Project->Debug,启动AXD进行软件仿真调试。
(5)打开寄存器窗口(Registers),选择Current项,监视R0、R1和R2的值。
打开存储
器观察窗口(Memory)设置观察Data1、Data2和Data3单元值,显示方式Size为32bit,
注意观察CPSR寄存器中的各标志位的情况。
6.实验参考程序
Data3=Data1+Data2运算汇编指令实验1的参考程序见程序清单2-3。
程序清单2-3汇编指令实验3参考程序
INCLUDELPC2294.INC;Includetheheadfile引入头文件
;声明MAIN函数
;ExportMAINfuncton
EXPORTMAIN;MAINFunction主程序
CODE32
AREAmain,CODE,READONLY;声明代码段Example1
西安邮电学院计算机系嵌入式系统教研室
14
ENTRY;标识程序入口
CODE32;声明32位ARM指令
MAIN
;addtheusercodehere.添加用户代码
LDRR11,=Data1;R11<=address(Data1)
LDRR0,[R11];R0<=Data1
LDRR11,=Data2;R11<=address(Data2)
LDRR1,[R11];R0<=Data2
ADDSR2,R1,R0
LDRR11,=Data3;R11<=address(Data3)
STRR2,[R11];[R1]<=R2,即设置COUNT为0
HALTBHALT
Data1DCD-18
Data2DCD6
Data3DCD0
END
Data3=Data2-Data1运算汇编指令实验4的参考程序见程序清单2-4。
程序清单2-4汇编指令实验4参考程序
INCLUDELPC2294.INC;Includetheheadfile引入头文件
;声明MAIN函数
;ExportMAINfuncton
EXPORTMAIN;MAINFunction主程序
CODE32
AREAmain,CODE,READONLY;声明代码段Example1
ENTRY;标识程序入口
CODE32;声明32位ARM指令
MAIN
;addtheusercodehere.添加用户代码
LDRR11,=Data1;R11<=address(Data1)
LDRR0,[R11];R0<=Data1
LDRR11,=Data2;R11<=address(Data2)
LDRR1,[R11];R0<=Data2
SUBSR2,R1,R0
LDRR11,=Data3;R11<=address(Data3)
STRR2,[R11];[R1]<=R2,即设置COUNT为0
HALTBHALT
西安邮电学院计算机系嵌入式系统教研室
15
Data1DCD0x87654321
Data2DCD0x12345678
Data3DCD0
END
7.思考
(1)模拟32bit处理器对带符号数(63)+(-65)在计算机中的表示与运算。
(2)参考程序清单中关于加减法指令,如果不加S后缀的话,对CPSR会有什么影响?
2.3简单分支程序设计
1.实验目的
掌握ARM条件执行指令的使用方法,学习分支程序设计。
加深领会处理器可以自动区分情况进行数据处理的方式原理。
2.实验设备
硬件:
PC机一台
软件:
Windows98/XP/2000系统,ADS1.2集成开发环境
3.实验内容
使用条件执行指令编写完成下述C代码功能的分支程序。
if(x==y)z=a+b;
elseif(x elsez=b–a; 4.实验预习要求 分支程序设计,ARM指令条件执行等相关知识。 5.实验步骤 ①启动ADS1.2IDE集成开发环境,选择asmforlpc2131工程模板,建立工程TEST3。 ②在模板文件main
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 嵌入式 系统 基础 实验