姓名:张英超
班级:09测控
学号:090119032成绩:
实验八
ARM汇编与C语言混合程序设计实验(三)
一、实验目的
1.掌握C程序中内嵌指令的使用方法。2.理解汇编程序调用C程序函数和变量的方法。
二、实验内容
1.使用内嵌汇编的方法设计允许和禁止中断程序。2.验证汇编程序调用C程序函数和访问C程序变量的执行过程。
三、实验步骤
验证汇编程序调用C程序函数和访问C程序变量的执行过程
本实验在汇编程序中调用C程序函数和访问C程序变量,采用ARMulator方式调试,选择用ARM9作为目标处理器。(1)新建ARM工程exp8启动ADS开发环境,选择File→NewProject选项,使用ARMExecutableImage工程模板创建一个工程exp82新建C程序文件test_cc,并将其添加到工程exp8中选择File→NewFile选项,新建C源程序文件test_cc,定义被汇编程序调用的C函数add和变量sum并添加到工程exp8中被调用的C程序#i
cludestdiohu
sig
edlo
gsum6exter
i
taddi
tai
tbi
tci
tdi
teretur
abcde
f3新建汇编程序文件test_asms,并将其添加到工程exp8中选择File→NewFile选项,新建汇编源程序文件test_asms,调用C程序中的函数add和访问变量sum并添加到工程exp8中EXPORTARM_addIMPORTaddIMPORTsumAREAARM_addCODEREADONLYENTRYSTARTLDRSP0xA000STRLRSP4MOVR01MOVR12MOVR23MOVR34MOVR45STRR4SP4BLaddLDRR1sumSTRR0R1ADDSPSP4LDRPCSP4END4设置工程exp8的编译和链接选项选择Edit→DebugRelSetti
gs选项,打开DebugRelSetti
gs对话框,设置工程编译和链接选项,在La
guageSetti
gs→ARMAssembler选项中,选择Target选项卡,修改处理器类型为ARM920T5在AXD中加载映像文件打开AXDDebugger,首先确认调试目标机是否设置为Armulator。选择Optio
s→Co
figureTargetChooseTarget选项,确认ARMUL为选中状态。然后单击Co
figure按钮,打开ARMulatorCo
figuratio
对话框,确认ARMulator模拟的处理器类型是ARM920T。选择File→LoadImage选项,载入工程exp8目录exp8exp8_DataDebugRel下编译生成的映像文件exp8axf6调试准备在AXD中,打开各个观察窗口,做调试准备。①选择ProcessorViews→Registers选项,打开ARM寄存器显示窗口。②选择ProcessorViews→Memory选项,打开ARM存储器显示窗口,并根据堆栈指针(本实验中的堆栈指针地址为0xA000)在MemoryStartAddress地址栏输入便于观察堆栈的内容地址(由于本实验堆栈是递减堆栈,所以选择观察地址为0x9FD0)。
f③选择ProcessorViews→Variables选项,打开ARM变量观察窗r