基于MDK完成创建汇编语言的STM32工程及分析生成的Hex文件
- 一、创建一个新工程
-
- 1、创建工程
- 2、环境配置
- 3、 添加文件
- 二、汇编程序
-
- 1、汇编代码
- 2、代码编译
- 3、仿真调试,观察寄存器变化状况
- 三、分析编译生成的Hex文件
-
- 1、.Hex文件格式说明
- 2、HEX文件
- 3、分析前8个字节内容
- 四、使用汇编语言实现LED灯闪烁
- 五、 总结
- 六、参考文献
一、创建一个新工程
1、创建工程
①点击Project,选择New uvison Project 创建一个新项目。
2、环境配置
3、 添加文件
①右键单击Source Group 1,选择Add New Item to Group。
二、汇编程序
1、汇编代码
① 在 Test.c 中添加如下的汇编代码
② 选择仿真器
选择魔法棒,再选择Debug,点击确定 use simulator以便进行虚拟调试并修改Dialog DLL及Parameter。
3、仿真调试,观察寄存器变化状况
①调试前寄存器显示结果
三、分析编译生成的Hex文件
1、.Hex文件格式说明
② .hex文件的数据格式
Intel HEX 由任意数量的十六进制记录组成。每个记录包含5个域,每一组字母 对应一个不同的域,每一个字母对应一个十六进制编码的数字。每一个域由至少两个十六进制编码数字组成,它们构成一个字节。
:(冒 ) 每个Intel HEX 记录都由冒 开头;
LL 是数据长度域, 它代表记录当中数据字节 (D…D) 的数量;
aaaa 是地址域, 它代表记录当中数据的起始地址;
TT是代表HEX 记录类型的域 , 它可能是以下数据当中的一 个:
D…D是数据域,它代表一个字节的数据。一个记录可以有许多数据字节。记录当中数据字节的数量必须和数据长度域(LL)中指定的数字相符。
CC是校验和域,它表示这个记录的校验和。校验和的计算是通过将记录当中所有十六进制编码数字对的值相加,以256为模进行以下补足。
2、HEX文件
① 生成hex文件
先点击魔法棒,再点击,再点击,最后在重新编译一次。
3、分析前8个字节内容
①查看hex文件并分析内容前八个字节内容含义
五、 总结
本次实验为我第一次接触STM32芯片及汇编语言编程,因在上学期学过单片机所以keil软件使用过程还算熟悉,但也遇到了很多困难,比如在最后寄存器跟踪时失败,后来经过同学的指点修改成功。对于嵌入式系统的学习,还任重而道远。
六、参考文献
【1】https://blog.csdn.net/qq_43279579/article/details/111717607
【2】https://blog.csdn.net/xwmrqqq/article/details/111824539
【3】百度百科 .hex文件
【4】https://blog.csdn.net/beready/article/details/24668529
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!