打印
[应用方案]

STM32中flash大小-hex文件大小-bin文件大小之间的关系

[复制链接]
1405|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LM莫|  楼主 | 2019-2-27 19:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前一直以为STM32flash空间大小和hex文件相关,hex文件大小超过flash大小后程序就会出问题,最近因为做项目添加的新功能,fBootLoader生成的hex文件过大,以为分配的不够,但是不想去改flash空间分配的大小,于是就想到了bin文件,然后查了bin文件如何直接烧写进芯片,这样生产就不会太慢,找到了方法,觉得很麻烦,于是就在想为什么hex文件和bin文件一样的程序大小会相差这么多呢,于是乎查了一下他们之间的详细区别,发现如下关系

相关帖子

沙发
LM莫|  楼主 | 2019-2-27 19:12 | 只看该作者
1、flash大小和hex文件大小没有关系
     我们在用串口下载程序时一般都是用的hex文件下载,所以会产生误导,以为hex文件大小和flash大小息息相关,hex文件大小超过了flash大小就会出问题,这种想法时相当错误的,hex文件大小和flash大小完全没有关系,真正烧写进去的是二进制文件,在hex文件中包含了bin文件的信息

使用特权

评论回复
板凳
LM莫|  楼主 | 2019-2-27 19:12 | 只看该作者
2、hex文件大小和bin文件大小没有决定性关系
  hex文件内容很多,其中就包含了bin文件二进制的内容,所有很多软件都能直接把hex文件转化成bin文件,烧写进flash的文件不是hex而是一堆bin文件

使用特权

评论回复
地板
LM莫|  楼主 | 2019-2-27 19:12 | 只看该作者
3、flash大小和bin文件大小息息相关
  bin文件就是完全的程序文件,里面包含了所有的程序内容,bin文件烧写进flash就可以执行,可以用STlink进入仿真查看相关的flash,就是bin文件内容

使用特权

评论回复
5
戈卫东| | 2019-3-26 08:55 | 只看该作者
HEX每一行包含地址计数校验等信息,而且是ASCII码(只有0-9,A-F这16个字符+CRLF)。

使用特权

评论回复
6
戈卫东| | 2019-3-26 08:56 | 只看该作者
HXE可以直接转换成BIN,BIN指定了地址也可以转换成HEX

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

447

帖子

3

粉丝