[应用方案] STM32中flash大小-hex文件大小-bin文件大小之间的关系

[复制链接]
 楼主| 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文件内容
戈卫东 发表于 2019-3-26 08:55 | 显示全部楼层
HEX每一行包含地址计数校验等信息,而且是ASCII码(只有0-9,A-F这16个字符+CRLF)。
戈卫东 发表于 2019-3-26 08:56 | 显示全部楼层
HXE可以直接转换成BIN,BIN指定了地址也可以转换成HEX
您需要登录后才可以回帖 登录 | 注册

本版积分规则

61

主题

447

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部