基于MDK完成STM32—LED灯闪烁

基于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进行处理,非常感谢!

上一篇 2021年8月24日
下一篇 2021年8月24日

相关推荐

tml>