IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> Keil环境下创建STM32汇编语言工程并分析HEX文件内容 -> 正文阅读

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

目录

一、创建新的项目

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.csdn.net/m0_58414679/article/details/120467462?utm_source=app&app_version=4.15.0&code=app_1562916241&uLinkId=usr1mkqgl919blen?

?

?

?

?

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-30 12:05:27  更:2021-09-30 12:05:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:42:38-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码