中国高校课件下载中心 》 教学资源 》 大学文库

《通信原理实验》课程教学资源(实验指导)嵌入式系统设计实验指导书

文档信息
资源类别:文库
文档格式:DOC
文档页数:25
文件大小:135.63KB
团购合买:点击进入团购
内容简介
《通信原理实验》课程教学资源(实验指导)嵌入式系统设计实验指导书
刷新页面文档预览

嵌入式系统设计实验指导书 通信基础实验中心 2007年9月

i 嵌入式系统设计实验指导书 通信基础实验中心 2007 年 9 月

实验成绩 实验1 实验2 实验3 实验4 实验5 实验6 实验7 总成绩成绩

ii 实验成绩 实验 1 实验 2 实验 3 实验 4 实验 5 实验 6 实验 7 总成绩成绩

目录 实验一ADS1.2集成开发环境练习(2学时) .1 实验二存储器的访问指令(2学时)3 实验三数据处理指令的使用(2学时) .5 实验四汇编指令结构化编程(2学时)8 实验五AM微控制器工作模式实验(2学时) .13 实验六C语言调用汇编程序实验(2学时) .14 实验七UART实验(4学时). 16 附录AARM指令及功能描述, 18 附录B指令条件码表. .19 附录C相关术语. 20 道

iii 目录 实验一 ADS 1.2 集成开发环境练习(2 学时). 1 实验二 存储器的访问指令(2 学时). 3 实验三 数据处理指令的使用(2 学时). 5 实验四 汇编指令结构化编程(2 学时). 8 实验五 ARM 微控制器工作模式实验(2 学时). 13 实验六 C 语言调用汇编程序实验(2 学时). 14 实验七 UART 实验(4 学时). 16 附录 A ARM 指令及功能描述. 18 附录 B 指令条件码表. 19 附录 C 相 关 术 语. 20

实验一ADS1.2集成开发环境练习(2学时) 1. 实验目的 了解ADS1.2集成开发环境的使用方法。 2.实验设备 ■硬件:PC机一台 ■软件:Windows98/XP/2000系统,ADS1.2集成开发环境 3.实验内容 (1)建立一个新的工程。 (2)建立一个C源文件。 (3)编写两个立即数相加(改变CPSR的值)汇编程序,并添加入工程 (4)设置编译连接控制选项。 (5)编译连接工程。 4.实验预习要求 仔细阅读ADS工程编辑的内容。 5.实验步骤 (1)启动ADSl.2IDE集成开发环境,选择File一New,使用ARM Executable Image工程模板建立一个工程。 (2)选择File一New,建立一个新的文件test.s,设置直接添加到项目中,输 入程序(如下),并保存。 (3)选择Edit一DebugRel Settings,在DebugRel Settings对话框的左边选 择ARM Linker项,然后在Output页设置连接地址RO Base为0x40000000, RW Base为0x40003000,在0 ptions页设置调试入口地址0x40000000。 (4)选择Project一Make,将编译连接整个工程。 6.实验程序(两个立即数相加的汇编程序test.s,并改变CPSR的 值) AERA Example,CODE,READONLY ENTRY CODE32 1

1 实验一 ADS 1.2 集成开发环境练习(2 学时) 1. 实验目的 了解 ADS 1.2 集成开发环境的使用方法。 2. 实验设备 ◼ 硬件:PC 机 一台 ◼ 软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境 3. 实验内容 (1)建立一个新的工程。 (2)建立一个 C 源文件。 (3)编写两个立即数相加(改变 CPSR 的值)汇编程序,并添加入工程 (4)设置编译连接控制选项。 (5)编译连接工程。 4. 实验预习要求 仔细阅读 ADS 工程编辑的内容。 5. 实验步骤 (1)启动 ADS1.2IDE 集成开发环境,选择 File—New,使用 ARM Executable Image 工程模板建立一个工程。 (2)选择 File—New,建立一个新的文件 test.s,设置直接添加到项目中,输 入程序(如下),并保存。 (3)选择 Edit—DebugRel Settings,在 DebugRel Settings 对话框的左边选 择 ARM Linker 项,然后在 Output 页设置连接地址 RO Base 为 0x40000000, RW Base 为 0x40003000,在 Options 页设置调试入口地址 0x40000000。 (4)选择 Project—Make,将编译连接整个工程。 6. 实验程序(两个立即数相加的汇编程序 test.s,并改变 CPSR 的 值) AERA Example,CODE,READONLY ENTRY CODE32

7.思考 (1)工程模板有何作用? (2)如何强行重新编译工程的所有文件?(提示:选择Project一Remove Object Code删除工程中的*.obj文件) 2

2 7. 思考 (1)工程模板有何作用? (2)如何强行重新编译工程的所有文件?(提示:选择 Project—Remove Object Code 删除工程中的*.obj 文件)

实验二存储器的访问指令(2学时) 1.实验目的 ■了解ADS1.2集成开发环境和ARMulator软件仿真。 ■掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序。 ■掌握指令条件执行和使用LDR/STR指令完成存储器的访问。 2.实验设备 ■硬件:PC机 一台 ■软件:Windows98XP2000系统,ADS1.2集成开发环境 3.实验内容 (1)使用指令LDR读取0x40003100地址上的数据,将数据加1。若结果小于 10,则使用STR指令把结果写回原地址;若结果>=10,则把0写回原地址。 (2)使用ADS1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗 口(Processor Register)监视Ro和R1的值,打开存储器观察窗口监视 0x40003100地址上的值。 4.实验预习要求 (I)仔细阅读ARM指令系统内容。 (2)仔细阅读ADS工程编辑和AXD调试的内容。 5.实验步骤 (1)启动ADSl.2IDE集成开发环境,选择File一New,使用ARM Executable Image工程模板建立一个工程。 (2)建立一个新的源文件test2.s,编写程序接添加到工程中。 (3)设置连接地址R0Base为0x40000000,RW Base为0x40003000。设置调 试入口地址为0x40000000。 (4)选择Project一Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视Ro和R1的值,打开存储器观察窗口监视0x40003100地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在format下拉菜单中选 择显示格式hex、decimal等。 6.实验程序 Count EQU 0x40003100;定义一个变量地址 AERA Example,CODE,READONLY ENTRY CODE32 3

3 实验二 存储器的访问指令(2 学时) 1. 实验目的 ◼ 了解 ADS 1.2 集成开发环境和 ARMulator 软件仿真。 ◼ 掌握 ARM7TDMI 汇编指令的用法,并能编写简单的汇编程序。 ◼ 掌握指令条件执行和使用 LDR/STR 指令完成存储器的访问。 2. 实验设备 ◼ 硬件:PC 机 一台 ◼ 软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境 3. 实验内容 (1)使用指令 LDR 读取 0x40003100 地址上的数据,将数据加 1。若结果小于 10,则使用 STR 指令把结果写回原地址;若结果>=10,则把 0 写回原地址。 (2)使用 ADS1.2 软件仿真,单步、全速运行程序,设置断点,打开寄存器窗 口(Processor Register)监视 Ro 和 R1 的值,打开存储器观察窗口监视 0x40003100 地址上的值。 4. 实验预习要求 (1)仔细阅读 ARM 指令系统内容。 (2)仔细阅读 ADS 工程编辑和 AXD 调试的内容。 5. 实验步骤 (1)启动 ADS1.2IDE 集成开发环境,选择 File—New,使用 ARM Executable Image 工程模板建立一个工程。 (2)建立一个新的源文件 test2.s,编写程序接添加到工程中。 (3)设置连接地址 RO Base 为 0x40000000,RW Base 为 0x40003000。设置调 试入口地址为 0x40000000。 (4)选择 Project—Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视 Ro 和 R1 的值,打开存储器观察窗口监视 0x40003100 地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在 format 下拉菜单中选 择显示格式 hex、decimal 等。 6. 实验程序 Count EQU 0x40003100 ;定义一个变量地址 AERA Example,CODE,READONLY ENTRY CODE32

7.思考 (1)若使用LDRB/STRB代替程序中的LDR/STR,程序能够正确执行吗? 4

4 7. 思考 (1)若使用 LDRB/STRB 代替程序中的 LDR/STR,程序能够正确执行吗?

实验三数据处理指令的使用(2学时) 1.实验目的 ■掌握ARM数据处理指令的使用方法 ■了解ARM指令灵活的第二个操作数。 2.实验设备 ■硬件:PC机一台 ■软件:Windows98/XP/2000系统,ADS1.2集成开发环境 3.实验内容 (1)使用MOV和MVN指令访问通用寄存器。 (2)使用ADD、SUB、AND、ORR、CMP和TST等指令完成数据加减及逻辑运算。 4.实验预习要求 (1)仔细阅读ARM指令系统内容。 (2)仔细阅读ADS工程编辑和AXD调试的内容。 5.实验步骤 (1)启动ADSl.2IDE集成开发环境,选择File一New,使用ARM Executable Image工程模板建立一个工程。 (2)建立一个新的源文件test3.s,编写程序接添加到工程中。 (3)设置连接地址R0Base为0x40000000,RW Base为0x40003000。设置调 试入口地址为0x40000000。 (4)选择Project一Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视Ro和R1的值,打开存储器观察窗口监视0x40003100地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在format下拉菜单中选 择显示格式hex、decimal等。 6.实验程序 X EQU 11:定义一个变量 Y EQU 8 BIT23 EQU (1<<23);定义Bit23的值为0x00800000 AERA Example,CODE,READONLY ENTRY CODE32 START Mov R0,#x Mov R1,#Y 5

5 实验三 数据处理指令的使用(2 学时) 1. 实验目的 ◼ 掌握 ARM 数据处理指令的使用方法 ◼ 了解 ARM 指令灵活的第二个操作数。 2. 实验设备 ◼ 硬件:PC 机 一台 ◼ 软件:Windows98/XP/2000 系统,ADS1.2 集成开发环境 3. 实验内容 (1)使用 MOV 和 MVN 指令访问通用寄存器。 (2)使用 ADD、SUB、AND、ORR、CMP 和 TST 等指令完成数据加减及逻辑运算。 4. 实验预习要求 (1)仔细阅读 ARM 指令系统内容。 (2)仔细阅读 ADS 工程编辑和 AXD 调试的内容。 5. 实验步骤 (1)启动 ADS1.2IDE 集成开发环境,选择 File—New,使用 ARM Executable Image 工程模板建立一个工程。 (2)建立一个新的源文件 test3.s,编写程序接添加到工程中。 (3)设置连接地址 RO Base 为 0x40000000,RW Base 为 0x40003000。设置调 试入口地址为 0x40000000。 (4)选择 Project—Make,将编译连接整个工程。 (5)单步、全速、运行程序,设置断点,打开寄存器窗口(Processor Register) 监视 Ro 和 R1 的值,打开存储器观察窗口监视 0x40003100 地址上的值。 说明:单击选择某一个寄存器,然后右击鼠标,在 format 下拉菜单中选 择显示格式 hex、decimal 等。 6. 实验程序 X EQU 11 ;定义一个变量 Y EQU 8 BIT23 EQU (1<<23) ;定义 Bit23 的值为 0x00800000 AERA Example,CODE,READONLY ENTRY CODE32 START Mov R0,#X Mov R1,#Y

;使用MOV、ADD指令实现:R8=R3=X+Y ;使用MWN、SUB指令实现:R5=OX5 FFFFFF8-R8*8 ;使用cmp指令判断(5×y/2)》(2*x)吗?若大于则r5=0x5 ffffff8, 否则,r5r5|0x000000ff ;使用tst指令测试r5的bit23是否为1,若是则将bit6位清0 (使用BIC指令) B START END 6

6 ;使用 MOV、ADD 指令实现:R8=R3=X+Y ;使用 MVN、SUB 指令实现:R5=0X5FFFFFF8 - R8 * 8 ;使用cmp指令判断(5×y/2)>(2*x)吗?若大于则r5=0x5ffffff8, 否则,r5=r5|0x000000ff ;使用 tst 指令测试 r5 的 bit23 是否为 1,若是则将 bit6 位清 0 (使用 BIC 指令) B START END

7.思考 (1)指令“M0VR0,#0x12345678”是否正确?为什么? (2)如何实现64位加法运算(R6、R5)=(R6、R5)+(R3、R2)?(提示:使用 ADC指令) (3)将程序中应用CMP指令的代码功能改为“若5×y/2)>(2*x)则 r5=r50x000000ff,否则,r5=r5&0 xffff0000,程序如何修改? 7

7 7. 思考 (1)指令“MOV R0, #0x12345678”是否正确?为什么? (2)如何实现 64 位加法运算(R6、R5)= (R6、R5)+( R3、R2)?(提示:使用 ADC 指令) (3)将 程 序中 应用 CMP 指 令的 代码 功能 改为 “若 5× y/2) >(2*x) 则 r5=r5|0x000000ff,否则,r5=r5 & 0xffff0000,程序如何修改?

共25页,试读已结束,阅读完整版请下载
刷新页面下载完整文档
VIP每日下载上限内不扣除下载券和下载次数;
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
相关文档