H7-TOOL脱机烧录器功能开源发布,支持1拖4,支持MM32,STM32,STM8,外置Flash等混合烧录(2020-05-30)

大家在使用中,有什么建议,欢迎反馈。

脱机烧录视频效果展示:
http://v.qq.com/x/page/p30628h2ou7.html

多款STM8+STM32产品混合烧录展示:
http://v.qq.com/x/page/o0932ppnuwx.html

1拖4脱机烧录效果展示:
https://v.qq.com/x/page/s0954t133ti.html

V1.20版APP程序:
h7_tool_app(V1.20).zip (480.91KB)
H7-TOOL_STM32H7_App-master(V1.20).zip (21.73MB)

上位机升级至V0.4:
H7-TOOL PC机软件(V0.4).zip (2.07MB)
H7-TOOL PC软件源代码(V0.4 2020-05-27).zip (25.79MB)

eMMC中要存储的文件:
存放到eMMC磁盘的文件V1.20a.zip (4.47MB)


【支持型号】
1、MM32:
MM32F003,  MM32F031,  MM32F032,  MM32F103,  MM32L0xx,  MM32L3xx,   MM32SPIN0x,  MM32SPIN2x,  MM32W0xxB,  MM32W3xxB

2、STM32:
STM32F0xx,  STM32F10x,  STM32F2xx,  STM32F3xx,  STM32F4xx,  STM32F7xx,  STM32H7x,  STM32L0xx,  STM32L1xx, STM32L4xx,  STM32G0xx,  STM32G4xx

3、STM8:
STM8L151x6, STM8S003x3,STM8S105x6,STM8S208x8

脱机编程器单路和四路的效率比较,效率极高

测试烧录 H7-TOOL的固件:
boot(46KB) + APP(685KB)+ QSPI Flash(2MB字库)
情况1:
CPU Flash和QSPI Flash内已有数据,烧录boot(46KB) + APP(685KB)+ QSPI Flash(2MB字库)
单路 :21.3秒
四路 :25.9秒 (等效 每个6.5秒)

情况2:
CPU Flash和QSPI Flash均为全FF状态,烧录boot(46KB) + APP(685KB)
单路 :3.757秒
四路 :5.01秒 (等效 每个1.25秒)


【脱机烧录功能介绍】
1、支持脱机烧录STM32。
2、支持灵动微MM32。
3、支持脱机烧录STM8芯片(STM8S和STM8L系列)。
4、支持外置QSPI Flash烧录。
5、支持1拖4脱机烧录。
6、支持组合烧录,比如一键烧写H7-TOOL的boot、app和QSPI Flash。
7、支持读、写保护状态识别,自动解除保护状态。
8、支持多段bin写入。
9、支持选择软件复位和硬件复位。
10、支持option bytes编程,烧录完毕设置读保护。
11、支持自动识别硬件烧录不同的程序(识别算法由lua指定)。
12、FLM算法文件从KEIL MDK中复制出来,存放到emmc磁盘 H7-TOOLProgrammerFLM,按厂商分类。
13、目标程序文件、编程脚本存放到:H7-TOOLProgrammerUser 文件夹。不限制目录级别和数量 。
14、动态解析FLM文件,分离出内存镜像通过swd加载到目标cpu ram。
15、FLM算法文件和数据文件支持绝对路径和相对路径。
16、支持动态填充产品序号、UID加密字段、用户自定义字段。
17、自动保存烧录次数,支持剩余次数限制功能。
18、支持连续烧录模式,检测到IC后自动烧录。
19、可动态显示CPU电压和供电电流。
20、通过lua脚本配置算法文件和数据文件(bin)以及控制编程过程。
21、烧录时LED快闪,烧录成功候常亮,烧录失败后熄灭
22、烧录界面增加清零本次计数、清零累计计数功能。
23、支持PC机联机调试lua程序
      - 打印内核ID、flash内容、RAM内容、UID、Option bytes。
      - 修改和显示目标CPU的RAM和任意寄存器。
      - 擦除CPU内部Flash、EEPROM。
      - 加读保护、解除保护。
      - 启动编程。
24、lua非常灵活,可以很方便扩充功能,比如:
(1)日期窗口段内才允许烧录。
(2)目标板电流超限报警。
(3)限定UID(CPU唯一序号)符合规则的才允许烧录。
(4)UID加密算法由用户自己定义。
(5)填充任意短数据(小于1K),比如可以写入生产日期时间或客户代码。
(6)关于程序文件保密问题,后期再考虑吧,因为H7-TOOL软件开源,文件结构开源,为了避免程序文件被加工厂泄露, 初步设想如下:
       a、控制USB虚拟磁盘程序入口,增加人工输入密码。
       b、在虚拟磁盘扇区读写底层函数,以512字节为单位增加客户自定义加密和解密算法。这样emmc数据内容就是被加密的,即使emmc芯片被复制出来放到其他H7-TOOL主板也无法识别。

【使用说明】
硬件连接:
1、SWD烧录接口:TVCC GND D8(SWDIO) D6(SWCLK) D4(RESET)
     SWIM烧录接口:TVCC GND D9(SWIM) D5(RESET)
2、用5P杜邦线连接到目标板。
3、目标板可以由H7-TOOL的TVCC引脚供电。
4、5P连接线的长度建议小于20CM。
5、实测脱机烧录器,实测线束能到80CM长度(并非所有MCU):链接


6、1拖4脱机烧录接线:
(1)脱机编程器单路烧录和四路烧录效率比较:链接
(2)1拖四扩展板功能和特点
- 配合H7-TOOL主机实现四路同步烧录SWD接口ARM芯片
- 软件可配置1路 1-2路 1-3路 1-4路四种模式
- 4路同步烧录,提高量产效率
- 4路TVCC电压可调节 1.26V-5.0V
- 每路最大电流250mA  (目标超过此电流时,目标板自行供电)
- 赠送4套20CM硅胶优质杜邦线
- 配套5P杜邦壳和4P杜邦壳,可自行调整线序
- 提供加长双塑排针,应对主板烧录口未焊接插座只有排针孔的情况
- 支持不带硬件复位口线烧录

效果:





进入和选择文件的步骤:
1、联机模式下长按S,弹出“扩展功能”菜单
2、选择"1.脱机烧录器(单路)",长按S确定,进入脱机烧录器单路界面
3、选择"2.脱机烧录器(多路)",长按S确定,进入脱机烧录器多路界面
4、按S键切换到"选择文件",长按S进入文件浏览器界面
5、选择对应的lua文件,长按S确定

按键功能:
1、按S键切换到“开始烧录”按钮
2、短按C键开始烧录
3、长按S键进入连续烧录模式(检测到芯片自动烧录)
4、长按C键可终止烧录

【修改lua文件】
1、联机模式下长按S进入扩展功能 -> 系统设置 -> USB eMMC磁盘
2、等待10秒左右电脑上可以看到 eMMC磁盘
3、用电脑的文件浏览器操作eMMC磁盘内容
4、两个关键目录:
     H7-TOOLProgrammerFLM  存放烧录的算法文件
     H7-TOOLProgrammerUser 存放用户的lua文件、bin文件

注意事项:
1、如果eMMC模拟U盘没有识别出来看此贴二楼:
http://www.armbbs.cn/forum.php?mod=viewthread&tid=96090

2、将压缩包解压出来后,全部复制到eMMC里面。


【lua文件说明】
1、下面每个LUA文件都是一个完整的产品系列:





4、选择要下载的固件和程序位置。
     --编程任务列表,可以任意追加
     --算法文件名和数据文件名支持绝对路径和相对路径,相对路径时和lua文件同目录,支持../上级目录
        TaskList = {
                AlgoFile_FLASH,                                        --算法文件
                "0:/H7-TOOL/Firmware/H7-BOOT.bin",        --数据文件
                0x08000000,                                            --目标地址
               
                AlgoFile_FLASH,                                       --算法文件
                "0:/H7-TOOL/Firmware/h7_tool_app.bin",  --数据文件
                0x08020000,                                           --目标地址

                AlgoFile_QSPI,                                         --算法文件
                "0:/H7-TOOL/Fonts/GB2312ZK.bin",           --数据文件
                0x90000000,                                           --目标地址               
        }

4、更高级的设置,可以继续浏览lua文件,简单易看懂,一目了然。

举例说明:
比如烧写一个bin文件output.bin到我们STM32-V6开发板STM32F429BIT61、选择型号:
dofile("0:/H7-TOOL/Programmer/Device/ST/STM32F4xx/STM32F42xxx_43xxx_2048.lua")

2、可以使用文件STM32F429xI.lua做模板,仅需修理里面的bin文件名和目标Flash地址
     TaskList = {
                AlgoFile_FLASH,
                "0:/H7-TOOL/Programmer/User/TestBin/output.bin",        --数据文件
                0x08000000,                                                                --目标地址
        }

3、将output.bin文件放到TestBin文件夹里面:


4、H7-TOOL进入脱机烧录(单路)后,选择STM32F429xI.lua文件:


5、点击开始烧录:


6、烧录过程分擦除,编程和校验:


LUA脚本文件截图,功能一目了然:


【支持PC机联机调试lua程序】
- 打印内核ID、flash内容、RAM内容、UID、Option bytes
- 修改和显示目标CPU的RAM和任意寄存器
- 擦除CPU内部Flash、EEPROM
- 加读保护、解除保护
- 启动编程



【和lua同名的ini文件说明】
文件内容如下,可以记事本编辑
Locked = 0                     --1表示锁死
ProgramLimit = 0            --烧录次数控制,0表示不限制, >0 表示限制的次数
ProgrammedCount = 43   --已经烧录的次数
ProductSN = 0                --产品序号滚码
LastTotalTime = 0           --暂时未用
LastEraseChipTime = 22  --全片擦除时间(ms),程序自动记录

【四款芯片混合烧录效果】




原文地址:https://www.cnblogs.com/armfly/p/12990852.html