【应用场景】
1、比如芯片容量1MB,实际程序大小只有几KB,但程序里面却在1MB末尾扇区attribute存放一些数据,导致hex2bin.exe后文件非常大,将近1MB,这种情况就可以考虑分割下,这样可以大大加快下载速度,无需下载中间那么多用不到的空间
2、还有内部Flash和外部Flash混合程序,这种的由于范围跨度比较大,TOOL可以方便的自动分割,不需要用户自己设置范围。当然,如果跨度比较小时,也可以考虑手动设置分割范围。
【手动设置分割范围方法】
1、比如我这里一个基于STM32H743板子的IAR工程,内部Flash模拟EEPROM
一共有16个RAM扇区,每个扇区128KB,总计2MB容量。我这里实际程序大小不到128KB,比如我把末尾扇区模拟为EEPROM。
使用IAR的bin转换功能,生成的bin文件高达2MB。实际程序大小是远小于这个的。
2、那么我们就可以这样分割,分割成两部分即可
注意大小不要重叠到下一个地址区
设置起始地址0x08000000,大小15*128KB(0x1E0000) --- TOOL转换的时候,会截取这个区域出来,并将区域内有效的数据截取出来
设置起始地址0x081E0000,大小1*128KB(0x20000)
3、设置分割
(1)选择型号后,双击这里:
(2)打开后,在这个位置添加如下代码,这个代码是上位机可以识别的分割代码:
[Lua] 纯文本查看 复制代码 HEX_FILE_DIV =
{
0x08000000, 0x1E0000, --起始地址, 大小
0x081E0000, 0x20000 , --起始地址, 大小
}
(3)设置完毕后保存这个LUA文件并关闭,同时关闭上位机,然后重新打开上位机才可以生效
此时选择芯片型号,并加载IAR生成的hex文件(注意要加载hex才会分割,加载bin不会分割),可以看到这里自动分割成了两个:
可以看到这两个文件大小远小于2MB
这样可以大大加快脱机烧录生产使用。
|