ADS环境下的ARM汇编程序
一、 实验目的
1.了解 ARM汇编语言的基本框架,学会使用ARM的汇编语言编程。
2.熟悉ADS1.2下进行汇编语言程序设计的基本流程;
3. 了解AXD中调试功能。
二、 实验环境
硬件:PC机
软件:ADS1.2
三、 实验任务与步骤
实验任务
1、在ADS中新建工程,并设置开发环境
2、在Code Warrior环境中编辑、编译和链接汇编语言程序,并生成可执行文件
①在AXD中调试汇编程序。
②使用命令行界面编辑、编译和链接汇编程序。
实验步骤
1、 新建工程
打开 Code Warrior ,选择 File->New(project) 选项,使用 ARM Executable Image 模版新建一个工程。
2、设置编译和链接选项
在菜单栏 Edit-DebugRel Settings 里进行设置。由于我们使用的是模拟机,设置汇编语言编译器 Assembler 的模拟处理器架构为Xscale;在 ARM Linker 中,选择 output 选项卡并选择 Linktype为 Simple 类型,确认 RO Base 为 0x8000,修改 RW Base 为0x9000。
3、 添加源程序文件
ARM 汇编程序源文件后缀名为.S 大小写均可。确保添加入当前工程复选框选上。
4、 编辑源程序代码
5、 编译汇编源代码文件
右击.S 文件,选择 Compile,如果没有成功会弹出错误和警告窗口。成功生成.O 目标代码文件。
6、 编译整个工程
选择 Project Make 进行整个工程的编译。可以在目录空间查看是否生成了映像文件.axf。
7、 确认调试目标设置
设置目标处理器型号。
8、 运行映像文件
如果 load image 是灰色,options -> configure target -> ARMUL(没有目标板)然后点 OK 就可以加载 AXF 文件了
9、 调试准备
在 AXD 中,打开各个观察窗口,做调试准备。选择 Processor Views Registers 选项,打开 ARM 寄存器显示窗口。调整窗口大小,使得Current 节点的 R0~R2 寄存器可见。选择 Processor Views Memory 选项,打开 ARM 存储器显示窗口。在 Start Address 输入框中输入准备查看的内存区域首地址 0x9000。
10、调试映像文件
打开调试窗口。为了便于调试,观察各个寄存器和存储器的变化情况。
11、运行程序观察记录结果
在 AXD 中,选择 Execute Step 选项,或者 F10 键,单步运行程序,查看相关寄存器和存储器相应地址上的变化。
按下F10
寄存器地址变化:
r0 | r1 | r2 |
0x00000000 | 0x00000000 | 0x00000000 |
0x00000000 | 0x00000001 | |
0x00000001 | 0x00000001 | |
0x00000001 | 0x00000002 | |
0x00000003 | 0x00000002 | |
0x00000003 | 0x00000003 | |
0x00000006 | 0x00000003 | |
0x00000006 | 0x00000004 | |
0x0000000A | 0x00000004 | |
0x0000000A | 0x00000005 | |
0x0000000F | 0x00000005 | |
0x0000000F | 0x00000006 | |
0x00000015 | 0x00000006 | |
0x00000015 | 0x00000007 | |
0x0000001C | 0x00000007 | |
0x0000001C | 0x00000008 | |
0x0000001C | 0x00000008 | 0x00009000 |
存储器地址变化:
Address | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | a | b | c | d | e | f |
0x00009000 | 10 | 00 | FF | E7 | 00 | E8 | 00 | E8 | 10 | 00 | FF | E7 | 00 | E8 | 00 | E8 |
1C | 00 | 00 | 00 | 00 | E8 | 00 | E8 | 10 | 00 | FF | E7 | 00 | E8 | 00 | E8 |