Keil环境下创建STM32汇编语言工程并分析HEX文件内容

本文介绍了在Keil环境下如何创建STM32汇编语言工程,从新建工程、添加源文件到程序编译和调试。详细阐述了如何生成HEX文件并分析其内容,特别是扩展线性地址记录的含义。最后,文中提到在工程创建和调试过程中遇到的问题及未来改进方向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、创建新的项目

1.新建工程

2.添加源文件

二、编写程序运行,调试

1.程序的编译

2.程序调试

三、分析生成的HEX文件

四、总结

五、参考文献


一、创建新的项目

1.新建工程

首先点击Project 选择New uVision Project创建一个新的项目

将文件命名后再将其保存

然后会弹出一个窗口选择芯片,选择STM32F103VE,然后点击ok

在CMSIS 下选择 COREDevice 下 Startup,然后点击OK

2.添加源文件

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

选择 Asm Files (.s) 添加汇编文件,然后输入文件名,并点击 Add

添加完成后就可以进行程序的编译并运行调试。

二、编写程序运行,调试

在TSET下编写程序代码,如下

 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

1.程序的编译

点击 Options for Target,在Output界面下,勾选 Create HEX File,生成 hex 文件

然后在 Debug界面下,勾选 Use Simulator,进行虚拟调试,点击OK 保存设置

再将debug中的Dialog和右侧Parameter

 

点击build和rebuild进行编译

2.程序调试

点击start开始运行仿真 

结果符合预期,寄存器 R5R6R7R8 的值和程序设置一致

三、分析生成的HEX文件

扩展线性地址记录(hex 文件的第一排十六进制)也叫作 32 位地址记录或 HEX386 记录

这些记录包含数据地址的高 16 位

扩展线性地址记录总是有两个数据字节

通过把记录当中的地址域与被移位的来自扩展线性地址记录的地址数据相加获得数据记录的绝对存储器地址

Intel HEX 由任意数量的十六进制记录组成。每个记录包含 5 个域,它们按一定格式排列::llaaaatt[dd...]cc

每一组字母对应一个不同的域,每一个字母对应一个十六进制编码的数字

在文件的最后一排,是一个文件的结束标志:

:00000001FF

四、总结

总的来说在在Keil环境下创建STM32汇编语言工程需要前期的准备工作较多,需要先进行一些设置和选择相应的部分,在整个的调试过程中我也存在着许多的问题,还存在很多的不足需要去改正。

五、参考文献

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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值