用Keil uVision5创建纯汇编语言的STM32工程

本文详细介绍了在Keil环境下创建STM32F103ZET6的汇编语言工程的步骤,包括新建工程、配置设备和运行环境、添加源文件、测试代码以及生成HEX文件。在调试过程中遇到问题并解决了调试设置,最终成功运行并验证了代码。
摘要由CSDN通过智能技术生成

1.新建工程

打开Keil uVision5
tool
点击最上面一行的project,如下图所示
在这里插入图片描述
在弹出的窗口点击选项New uVision Project,创建新的工程;具体如下图所示;
在这里插入图片描述
点开后,设置项目工程路径、项目名称并保存
在这里插入图片描述

2.配置环境

2.1 选择设备

设置工程的目标环境,本文基于STM32F103ZET6,因此在弹出的窗口选择相应的选项,点击保存即可
步骤如图所示:在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果无法找到该窗口,可以在工具栏点击魔术棒图标,如下图所示;
在这里插入图片描述
或者在菜单栏点击project,然后选择Options for Target即可,具体如下图所示;
在这里插入图片描述

2.2 选择运行环境

ARM的CMSIS已经把开发所需要的软件组件都封装好了,因此直接选择打勾即可;

  1. CMSIS下选择CORE;
  2. Device下Startup,其中包含了启动文件;

如下图所示
在这里插入图片描述
点击ok即可。

2.3 添加源文件

鼠标右键单击Source Group 1,选择Add New Item to Group,具体如下图所示;
在这里插入图片描述

  1. 选择 Asm File (.s) ,创建汇编文件;
  2. 设置源文件的名称;
  3. 点击保存;
    如图所示(这里重做了一次之前的步骤将文件名改为了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的理解还不够。

5.参考文献

https://blog.csdn.net/ssj925319/article/details/111868500.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值