这里写目录标题
1.新建工程
打开Keil uVision5
点击最上面一行的project,如下图所示
在弹出的窗口点击选项New uVision Project,创建新的工程;具体如下图所示;
点开后,设置项目工程路径、项目名称并保存
2.配置环境
2.1 选择设备
设置工程的目标环境,本文基于STM32F103ZET6,因此在弹出的窗口选择相应的选项,点击保存即可
步骤如图所示:
如果无法找到该窗口,可以在工具栏点击魔术棒图标,如下图所示;
或者在菜单栏点击project,然后选择Options for Target即可,具体如下图所示;
2.2 选择运行环境
ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择打勾即可;
- CMSIS下选择CORE;
- Device下Startup,其中包含了启动文件;
如下图所示
点击ok即可。
2.3 添加源文件
鼠标右键单击Source Group 1,选择Add New Item to Group,具体如下图所示;
- 选择 Asm File (.s) ,创建汇编文件;
- 设置源文件的名称;
- 点击保存;
如图所示(这里重做了一次之前的步骤将文件名改为了test1 因为之前文件夹里有一个TEST)
3.测试代码
3.1 源代码
汇编语言代码如下:
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
3.2 仿真器设置
设置硬件仿真器,具体根据自己的实际情况进行选择,如下图所示;
点击魔法棒
选择左边的Use Simulator,因为是网络仿真,没有芯片加持;
3.3 编译调试
按照下图所示,编译工程并进入调试模式;
最后看到,寄存器R5,R6,R7,R8的值与预期的结果不同
通过查阅资料,将debug调节为下图所示可以实现正常仿真
再次调试运行,寄存器 R5,R6,R7,R8 的值和程序设置一致。
3.4生成的HEX文件
以记事本打开HEX文件如下图所示
4.总结
Keil环境下创建STM32汇编语言工程还是有难度的,因为对仿真软件的不熟悉,在调试代码环节遇到了许多问题,多亏了网上的大佬们的博客才得以解决,对STM32的理解还不够。