Qt 对bin,Hex文件的读写

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 对bin,Hex文件的读写相关的知识,希望对你有一定的参考价值。

参考技术A

​ 项目需要将bin文件和Hex文件合并到一个并一个bin文件中,并保留Hex的原始信息。因为两块MCU使用不同的文件进行升级,并且是主MCU给副MCU升级,主MCU通过OTA获取更新文件。

可以看出对Bin文件和Hex文件的读取使用不同的方式;bin文件中的储存的是数据,有些值是不能被显示的,如果使用 QTextStream 读取,对于某些不可见字符,就会被忽略,造成读取到的bin文件数据丢失。

在保存为文件之前,可以任意修改文件的数据,比如需要修改指定位置的数据。

hex文件转bin格式

hex文件转bin格式

1. STM32CubeProgrammer

使用STM32CubeProgrammer 将hex文件转化为bin文件

在这里插入图片描述

如果用boot+app两个hex文件,可以将boot hex文件最后两行删掉,将app的hex添加到后面
在这里插入图片描述

2. hex文件转bin文件小工具

hex文件转bin文件小工具

可以将hex文件拖拽到软件打开
可以将未指定的flash地址填充未0
可以分析hex文件地址信息
可以多个hex文件合并

在这里插入图片描述

MDK生成bin文件

MDK安装目录下有个fromelf.exe, 可以将MDK生成的调试文件(.axf)转换成bin文件
在这里插入图片描述
在这里插入图片描述

在编译后,运行命令,将axf文件转换成bin文件
在这里插入图片描述

在这里插入图片描述

  • fromelf.exe --bin --bincombined --bincombined_padding=1,0xff --output @L.bin !L
  1. –bincombined --bincombined_padding=1,0xff 如果有多个flash段,中间空闲的填充0xff
    在这里插入图片描述

  2. @ .uvprojx文件的路径 @L.bin 就是 LED.bin
    在这里插入图片描述

  3. ! 当前目录下的扩展路径 例如 !L 就是 LED\\LED.axf

  4. L 扩展名 这里就是LED

在这里插入图片描述

在这里插入图片描述

以上是关于Qt 对bin,Hex文件的读写的主要内容,如果未能解决你的问题,请参考以下文章

hex文件和bin文件区别

linux下hex文件到bin文件的格式转化,bin文件转换为hex文件操作步骤解析

hex文件转bin格式

在进行资产监测技术研发时,HEX文件和BIN文件区别

意法半导体STM32CubeIDE生成hex、bin文件

C# 学习笔记(12)hex文件转bin文件小工具