1. 了解Keil开发环境;
2. 熟悉A9实验系统的硬件构成和软件编程环境;
3. 掌握Keil开发环境中的工程设置和程序调试方法;
4. 掌握ARM汇编语言指令和编程的方法;
5. 掌握ARM汇编语言和C语言程序的相互调用方法。
1. 硬件:A9教学实验箱、PC机。
2. 软件:PC机Windows操作系统、Keil集成开发环境(仿真平台)。
1. Keil开发环境下:(现场教学或参考相关文档)
(1) 创建uvision工程文件;
(2) 工程下添加或创建汇编文件;
(3) Keil下基于ARM处理器的仿真环境的参数配置;
(4) 汇编程序的编译、调试与执行。
2. 块复制程序的调试与分析
(1) 复制理论课部分讲过的数据块的复制程序,编译调试,观察并记录寄存器和内存中的内容变化情况。
(2) 分析程序,将程序修改为以“8个字为单位”进行复制,重新调试修改后的程序,观察并记录寄存器和内存中的内容变化情况。
3. 汇编语言与C语言程序(函数)相互调用
(1) 复制理论课部分讲过的C程序和汇编程序相互调用,编译调试,观察并记录寄存器和内存中的内容变化情况。
(2) 结合ATPCS准则,分析C语言函数中的参数/返回值与通用寄存器及内存(堆栈)的关系。
4. 初始化程序的调试与分析
(1) 编写初始化汇编程序,实现不同处理器工作模式下的堆栈指针初始化。
(2) 思考在该程序中为什么要切换不同的处理器工作模式,如果用户模式相关语句放在其他模式之前会发生什么?
5. 选做题
编写汇编程序实现第4章作业题:求N个有符号数的最大值。
6. 根据实验内容和结果,撰写实验报告。