基于stm32f103的汇编语言工程仿真及分析

目录

一、创建新项目

 二、编写汇编语言、编译 

三、调试分析

四、总结

五、参考文献


一、创建新项目

打开keil,点击project->New μVision Project创建一个新项目基于stm32f103的汇编语言工程仿真及分析

命名文件后保存,基于stm32f103的汇编语言工程仿真及分析

 选择STMicroelectronics->STM32F1 Series->STM32F103->STM32F103C8(其他型号同理)

基于stm32f103的汇编语言工程仿真及分析

 勾选CMSIS中的CORE和Device中的Starup,其中CMSIS中的CORE为Cortex-M处理器核和外设定义应用程序接口API(Application Programming Interface),也包括一致的系统启动代码。Device中的Starup则是包含了启动文件。

基于stm32f103的汇编语言工程仿真及分析

 右键点击Source Group 1,选择Add New Item to 'Source Group 1'

基于stm32f103的汇编语言工程仿真及分析

 选择Asm File(.s),创建一个汇编语言文件,输入文件名,点击add

基于stm32f103的汇编语言工程仿真及分析

 创建成功后如下图所示

基于stm32f103的汇编语言工程仿真及分析

 二、编写汇编语言、编译
 

首先点击这个图标基于stm32f103的汇编语言工程仿真及分析

 首先在output中勾选create HEX File,只有勾选了这个选项之后才能生成.HEX文件

基于stm32f103的汇编语言工程仿真及分析

 然后在Debug中选择Use Simulator使用仿真器进行仿真实验

基于stm32f103的汇编语言工程仿真及分析

完成上述操作后,在代码框输入以下代码

 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

点击rebuild进行编译

基于stm32f103的汇编语言工程仿真及分析

编译成功,如下图基于stm32f103的汇编语言工程仿真及分析

 

三、调试分析

首先在option for target中修改某些参数

基于stm32f103的汇编语言工程仿真及分析

 修改debug中Dialog和右侧的Paramete,改为下图所示

基于stm32f103的汇编语言工程仿真及分析

 调试运行,得到以下结果

基于stm32f103的汇编语言工程仿真及分析

 运行结果寄存器 R5R6R7R8 的值和程序设置一致

四、总结

在过程中遇到不少问题,例如寄存器的数据与程序不一致,是因为设置出现问题而导致的,keil环境在某些情况下自动配置还是有一些问题,要注意检查

五、参考文献

​​​​​​https://blog.csdn.net/m0_58414679/article/details/120467462?utm_source=app&app_version=4.15.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

https://blog.csdn.net/ChenGuiGan/article/details/80223687

 

上一篇:odoo10 many2one字段下拉更多选项时自定义排序方法


下一篇:LR参数化,参数化类型:唯一编号--参数化手机号