目录
1、新建工程
双击打开Keil5,然后点击菜单栏的projrct选择NEW uVision Project如下图所示:
然后在弹出的窗口设置自己想保存的工程路径和工程名称:
2、环境准备
由于本文基于STM32F103ZET6,因此在弹出的窗口选择TM32F103ZET6:
之后再弹出的窗口在CMSIS下的CORE和Device下的Startup下打钩:
鼠标右键单击Source Group 1,然后选择Add New Item to Group添加源文件,然后选择Asm File(.s)创建汇编文件,自己定一个喜欢的源文件名称点击保存即可。最终如图示:
3、错误总结
1、如果有不小心把右边的project窗口关闭了,在view里可以选择project Window打开:
2、在测试代码的时候可能出现错误提示
错误:未知操作指令MYDATA,预指令或者宏错误.
也就是说R0未识别
1.ARM汇编指令不支持顶格写,否则不能识别
2. 声明变量时不要有空格
可能是缩进造成的问题,就在前面加了一个空格就可以了。
4、测试代码
首先把仿真器设置了,点击小锤子:
然后选择Debug 页面,在“Debug”选项卡中选择“Use Simulator”,表示使用软件仿真;选择“Run to main()”则表示跳过汇编代码,直接跳转到main函数开始仿真。设置下面的“Dialog DLL”项为“DARMSTM.DLL”和“TARMSTM.DLL”;parameter项为“-pSTM32F103C8”,用于设置支持STM32F103C8的软硬件仿真。
然后编译并调试此代码:
AREA MYDATA, DATA
AREA MYCODE, CODE
ENTRY
EXPORT __main
__main
MOV R0, #10
MOV R1, #11
MOV R2, #12
MOV R3, #13
;LDR R0, =func01
BL func01
;LDR R1, =func02
BL func02
BL func03
LDR LR, =func01
LDR PC, =func03
B .
func01
MOV R5, #05
BX LR
func02
MOV R6, #06
BX LR
func03
MOV R7, #07
MOV R8, #08
BX LR
然后点击下一步运行知道叉叉变红,点击叉叉即可:
最后运行结果如下图:
5、总结
对于STM32的学习如果可以更应该结合硬件进行仿真,本文章是单纯软件的仿真。