硬汉嵌入式论坛

 找回密码
 立即注册
查看: 185|回复: 1
收起左侧

[脱机烧录] H7-TOOL脱机烧录大范围不连续hex文件的自动分割范围设置方法(2025-06-05)

[复制链接]

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
发表于 4 天前 | 显示全部楼层 |阅读模式
【应用场景】

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。实际程序大小是远小于这个的。

1234.png

2、那么我们就可以这样分割,分割成两部分即可

注意大小不要重叠到下一个地址区

设置起始地址0x08000000,大小15*128KB(0x1E0000)    --- TOOL转换的时候,会截取这个区域出来,并将区域内有效的数据截取出来

设置起始地址0x081E0000,大小1*128KB(0x20000)

3、设置分割

(1)选择型号后,双击这里:

1.png

(2)打开后,在这个位置添加如下代码,这个代码是上位机可以识别的分割代码:

[Lua] 纯文本查看 复制代码
        HEX_FILE_DIV = 
        {
                0x08000000, 0x1E0000,   --起始地址, 大小
                0x081E0000, 0x20000 ,   --起始地址, 大小
        }        


2.png

(3)设置完毕后保存这个LUA文件并关闭,同时关闭上位机,然后重新打开上位机才可以生效

此时选择芯片型号,并加载IAR生成的hex文件(注意要加载hex才会分割,加载bin不会分割),可以看到这里自动分割成了两个:

3.png

可以看到这两个文件大小远小于2MB

1234.png

这样可以大大加快脱机烧录生产使用。










回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
116197
QQ
 楼主| 发表于 3 天前 | 显示全部楼层
已经更新完成。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2025-6-9 21:40 , Processed in 0.265523 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表