嵌入式实验指导书

时间:2022-11-21 05:50:03 作者:壹号 字数:4155字

1、ADS 1.2集成开发环境练习

1.1 实验目的

了解ADS 1.2集成开发环境的使用方法。

1.2 实验设备

硬件:PC机 一台

软件:Windows98/XP/2000系统,ADS 1.2集成开发环境

1.3 实验内容

1. 建立一个新的工程;

2. 建立一个C源文件,并添加到工程中; 1. 设置编译连接控制选项; 4. 编译连接工程。

1.4 实验预习要求

仔细阅读本书第2.2节ADS工程编辑的内容。

1.5 实验步骤

1. 启动ADS1.2 IDE集成开发环境,选择【File】-> 【New?】,使用ARM Executable Image

工程模板建立一个工程,工程名称为ADS,见图1。

图1 建立ARM指令代码的工程

2. 选择【File】->【New?】建立一个新的文件TEST1.S,设置直接添加到项目中,见

图1.2。输入如程序清单1所示的代码,并保存,见图1.3。

图2 新建文件TEST1.S 程序清单1 TEST1.S文件代码

AREA Example1,CODE,READONLY ; 声明代码段Example1 ENTRY ; 标识程序入口 CODE32 ; 声明32位ARM指令

START MOV R0,#15 ; 设置参数

MOV R1,#8

ADDS R0,R0,R1 ; R0 = R0 + R1

B START END

图3 添加了TEST1.S的工程管理窗口 1. 选择【Edit】->【DebugRel Settings?】,在DebugRel Settings对话框的左边选择ARM Linker项,然后在Output页设置连接地址(见图1.4),在Options页设置调试入口地址(见图 1.5)。

图4 工程连接地址设置

图5 工程调试入口地址设置 4. 选择【Project】->【Make】,将编译连接整个工程。 1.6 思考

工程模板有何作用?(提示:编译控制设置)

如何强行重新编译工程的所有文件?(提示:选择【Project】->【Remove Object Code?】

删除工程中的*.obj文件)

2 汇编指令实验1 2.1 实验目的

1.了解ADS 1.2集成开发环境及ARMulator软件仿真;

2.掌握ARM7TDMI汇编指令的用法,并能编写简单的汇编程序; 3.. 掌握指令的条件执行和使用LDR/STR指令完成存储器的访问。

2.2 实验设备

硬件:PC机 一台

软件:Windows98/XP/2000系统,ADS 1.2集成开发环境

2.3 实验内容

使用LDR指令读取0x40003100上的数据,将数据加1,若结果小于10则使用STR指

令把结果写回原地址,若结果大于等于10,则把0写回原地址。

使用ADS 1.2软件仿真,单步、全速运行程序,设置断点,打开寄存器窗口(Processor

Registers)监视R0、R1的值,打开存储器观察窗口(Memory) 监视0x40003100上的值。

2.4 实验预习要求

仔细阅读《ARM与嵌入式系统基础教程》第4章ARM指令系统的内容;

仔细阅读本书第2.2、2.3节ADS工程编辑和AXD调试的内容。(本实验使用软件仿真)

2.5 实验步骤

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地址上的值。

说明:在Memory窗口中点击鼠标右键,Size项中选择显示格式为8Bit、16Bit、32Bit。

如图1.6所示。

6. 可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,调试

时观察寄存器和0x40003100地址上的值。运行结果见图1.7。

图6 Memory窗口显示格式设置

…… 此处隐藏21字 ……

汇编指令实验1的参考程序见程序清单2。 程序清单2 汇编指令实验1参考程序

COUNT EQU 0x40003100 ; 定义一个变量,地址为0x40003100

AREA Example2,CODE,READONLY ; 声明代码段Example2 ENTRY ; 标识程序入口

CODE32 ; 声明32位ARM指令

START LDR R1,=COUNT ; R1 <= COUNT

MOV R0,#0 ; R0 <= 0

STR R0,[R1] ; [R1] <= R0,即设置COUNT为0