嵌入式(子程序调用实验程序及过程)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ARM子程序设计实验

7.1实验目的

①了解子程序编写及调用。

②掌握ARM乘法指令的使用方法

7.2 实验环境

①硬件:PC机

②软件:ADS1.2

7.3 实验内容

①MUL指令编写一个整数乘方的子程序。

②多寄存器传送指令(STMFD/LDMFD)运用和各种变址寻址模式的掌握。

③BL指令调用子程序计算X n

7.4 实验过程

(1)新建ARM工程exp7_1

启动ADS开发环境,选择File→New(Project)选项,使用ARM Executable Image工程模板创建一个工程exp7_1.

(2) 新建汇编程序文件exp7.s,并将其添加到工程exp7_1中

选择File→New(File)选项,新建汇编源程序文件exp7.s并添加到工程exp7_1中,exp7.s 源程序的参考代码如下:

X EQU 3

n EQU 4

AREA Lab1,CODE,READONL Y

ENTRY

START LDR SP,=0X30003F00

LDR R0,=X

LDR R1,=n

BL POW

halt b halt

POW STMFD SP!,{R1-R12,LR}

MOVS R2,R1

MOVEQ R0,#1

BEQ POW_END

MOV R1,R0

SUB R2,R2,#1

POW_L1 BL DO_MUL

SUBS R2,R2,#1

BNE POW_L1

POW_END LDMFD SP!,{R1-R12,PC}

DO_MUL MUL R0,R1,R0

MOV PC,LR

END

(3) 设置工程exp7的编译和链接选项

设置工程链接地址RO Base:0x3000000,RW Base:0x3003000, 设置调试地址:0x3000000

(4) 编译和链接工程

在工程exp7窗口中,选择Make工具按钮,编译和链接工程exp6_1,如果有错误提示,请检查修改程序中的语法错误,直到编译和链接通过。

(5)在AXD中加载映像文件

打开AXD Debugger,首先确认调试目标机是否设置为Armulator。选择Options→Configure Target(Choose Target)选项,确认ARMUL为选中状态。然后单击Configure按钮,打开ARMulator Configuration对话框,确认ARMulator模拟的处理器类型是ARM920T。

选择File→Load Image选项,载入工程exp7目录exp7\exp7_Data\DebugRel\下编译生成的映像文件exp7.axf

(6)调试准备

在AXD中,打开各个观察窗口,做调试准备。

①选择Processor Views→Registers选项,打开ARM寄存器显示窗口。

②选择Processor Views→Memory选项,打开ARM存储器显示窗口。

③选择Processor Views→Low Lever Symbols选项,打开标号及其地址显示窗口;

④选择Processor Views→Disassembly选项,打开反汇编显示窗口。

(7)单步运行程序

在AXD中,选择Execute→Step菜单项或按F10快捷键,或者使用调试工具条,单步运行程序,查看相关寄存器的值的变化情况。请把每一步的执行结果填入到下表中。执行File →Reload Current Image命令可以重新加载和运行当前映像文件。

相关文档
最新文档