姓名:张英超班级:09测控学号:090119032成绩:
实验七ARM汇编与C语言混合程序设计实验(二)
一、实验目的
1.掌握C程序中内嵌指令的使用方法。2.理解汇编程序调用C程序函数和变量的方法。
二、实验内容
1.使用内嵌汇编的方法设计允许和禁止中断程序。2.验证汇编程序调用C程序函数和访问C程序变量的执行过程。
三、实验步骤
允许和禁止中断程序本实验使用内嵌汇编的方法完成允许和禁止中断程序设计,这里使用Armulator作为调试的目标机。(1)新建ARM工程exp7
启动ADS开发环境,选择File→NewProject选项,使用ARMExecutableImage工程模板创建一个工程exp7
2新建汇编程序文件exp7c,并将其添加到工程exp7中选择File→NewFile选项,新建汇编源程序文件exp7c并添加到工程exp7中,exp7c源程序的参考代码如下:
i
cludestdioh__i
li
evoide
able_IRQvoid
i
ttmp__asm
MRStmpCPSRBICtmptmp0x80MSRCPSR_ctmp
f
__i
li
evoiddisable_IRQvoid
i
ttmp__asm
MRStmpCPSRORRtmptmp0x80MSRCPSR_ctmp
i
tmai
void
e
able_IRQdisable_IRQretur
0
3设置工程exp7_1的编译和链接选项选择Edit→DebugRelSetti
gs选项,打开DebugRelSetti
gs对话框,设置工程编译
和链接选项,在La
guageSetti
gs→ARMAssembler选项中,选择Target选项卡,修改处理器类型为ARM920T
4编译和链接工程在工程exp7_1窗口中,选择Make工具按钮,编译和链接工程exp7_1如果有错误提示,
请检查修改程序中的语法错误,直到编译和链接通过。
(5)在AXD中加载映像文件打开AXDDebugger,首先确认调试目标机是否设置为Armulator。选择Optio
s→
Co
figureTargetChooseTarget选项,确认ARMUL为选中状态。然后单击Co
figure按钮,打开ARMulatorCo
figuratio
对话框,确认ARMulator模拟的处理器类型是ARM920T。
选择File→LoadImage选项,载入工程exp7_1目录exp7_1exp7_1_DataDebugRel下编译生成的映像文件exp7_1axf
6调试准备在AXD中,打开各个观察窗口,做调试准备选择ProcessorViews→Registers选项,打开ARM寄存器显示窗口。
(7)运行程序并观察ARM寄存器,尤其是当前程序状态寄存器的变化情况在AXD中,先选择Execute→Go选项或按F5快捷键,跳入嵌入内联汇编的C程序,并
观察当时ARM寄存器尤其是当前程序状态寄存器的内容。
f然后选择选择Execute→StepI
菜单项或按F8快捷键,或者使用调试工具条,单步运行嵌入汇编的C程序,直到程序执行结束为止。
最后,根据嵌入汇编的C程序执行过程,观察ARM寄存器尤其是当前程序状态寄存器的变化情况,并填入表71中。r