说明:
1、我们已经对STM32L0,STM32F0,STM32F1,STM32F4,STM32F7,STM32H7,STM8L,STM8S,外置QSPI Flash进行了适配。
2、其它STM32型号的支持,大家可以看操作说明,做适配。后续会对市场上的其它厂家嵌入式芯片做支持,甚至RISC-V内核。
大家在使用中,有什么建议,欢迎反馈,争取做的更扎实。
多款STM8+STM32产品混合烧录展示:
脱机烧录界面效果展示:
V1.09版APP程序:
h7_tool_app(V1.09)
H7-TOOL_STM32H7_App-master(V1.09)
上位机升级至V0.2:
H7-TOOL PC机软件(V0.2)
H7-TOOL PC软件源代码(V0.2)
eMMC要存储的文件:
H7-TOOL eMMC磁盘文件(V1.09)
2020-03-12 V1.09
【修改&新增功能】
1. 脱机烧录功能
(1)增加STM8芯片(STM8S和STM8L系列)。
(2)增加自动识别硬件烧录不同的程序(识别算法由lua指定)。
(3)增加组合烧录,比如一键烧写H7-TOOL的boot、app和QSPI Flash。
(4)FLM算法文件和数据文件支持绝对路径和相对路径。
(5)优化LUA脚本,支持读、写保护状态识别,自动解除保护状态。
(6)取消程序文件的大小显示,本次计数采用32点阵字体。
(7)支持PC机联机调试lua程序。
- 打印内核ID、flash内容、RAM内容、
UID、Option bytes。
- 修改和显示目标CPU的RAM和任意寄存器。
- 擦除CPU内部Flash、EEPROM。
- 加读保护、解除保护。
- 启动编程。
(8)解决无法烧录STM32L0xx芯片的BUG,L0系列的Init函数需要传递形参1-2才行。
(9)烧录时LED快闪,烧录成功时常亮,烧录失败后熄灭。
(10)烧录界面增加清零本次计数、清零累计计数功能。修改产品序号功能未做,后面有空再做。
2. LUA
- print_hex 函数支持显示宽度和显示地址。
【bug修复】
1. 脱机编程算法占用的RAM可以通过lua文件指定,V1.08是固定0x1000。某些片子不够用。
2. READ_FMC()存在不能及时获取数据问题。解决方法:FMC内存空间需要配置为禁止cashe。
3. 微型数控电源界面如果关闭了蜂鸣器,无法确认是否进入了电压设置状态。
4. 00联机模式界面 切换屏幕显示方向时,日期和时间不会显示。
【脱机烧录功能介绍】
1、支持脱机烧录STM32。
2、支持脱机烧录STM8芯片(STM8S和STM8L系列)。
3、支持外置QSPI Flash烧录。
4、支持组合烧录,比如一键烧写H7-TOOL的boot、app和QSPI Flash。
5、支持读、写保护状态识别,自动解除保护状态。
6、支持多段bin写入。
7、支持option bytes编程,烧录完毕设置读保护。
8、支持自动识别硬件烧录不同的程序(识别算法由lua指定)。
9、FLM算法文件从KEIL MDK中复制出来,存放到emmc磁盘 \H7-TOOL\Programmer\FLM,按厂商分类。
10、目标程序文件、编程脚本存放到:\H7-TOOL\Programmer\User 文件夹。不限制目录级别和数量 。
11、动态解析FLM文件,分离出内存镜像通过swd加载到目标cpu ram。
12、FLM算法文件和数据文件支持绝对路径和相对路径。
13、支持动态填充产品序号、UID加密字段、用户自定义字段。
14、自动保存烧录次数,支持剩余次数限制功能。
15、支持连续烧录模式,检测到IC后自动烧录。
16、可动态显示CPU电压和供电电流。
17、通过lua脚本配置算法文件和数据文件(bin)以及控制编程过程。
18、烧录时LED快闪,烧录成功时常亮,烧录失败后熄灭
19、烧录界面增加清零本次计数、清零累计计数功能。
20、支持PC机联机调试lua程序
- 打印内核ID、flash内容、RAM内容、
UID、Option bytes。
- 修改和显示目标CPU的RAM和任意寄存器。
- 擦除CPU内部Flash、EEPROM。
- 加读保护、解除保护。
- 启动编程。
21、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。
进入和选择文件的步骤:
1、联机模式下长按S,弹出“扩展功能”菜单
2、选择"1.脱机烧录器",长按S确定,进入脱机烧录器界面
3、按S键切换到"选择文件",长按S进入文件浏览器界面
4、选择对应的lua文件,长按S确定
按键功能:
1、按S键切换到“开始烧录”按钮
2、短按C键开始烧录
3、长按S键进入连续烧录模式(检测到芯片自动烧录)
4、长按C键可终止烧录
【修改lua文件】
1、联机模式下长按S进入扩展功能 -> 系统设置 -> USB eMMC磁盘
2、等待10秒左右电脑上可以看到 eMMC磁盘
3、用电脑的文件浏览器操作eMMC磁盘内容
4、两个关键目录:
H7-TOOL\Programmer\FLM 存放烧录的算法文件
H7-TOOL\Programmer\User 存放用户的lua文件、bin文件
注意事项:
1、如果eMMC模拟U盘没有识别出来看论坛相应帖子。
2、将压缩包解压出来后,全部复制到eMMC里面。
【lua文件说明】
1、找一个lua文件做模板,复制一份更换目录或名字,当前提供了以下几个模板:
2、用记事本打开lua文件进行编辑。
3、几个关键参数如下,需要指定算法文件和程序文件。
4、更高级的设置,可以继续浏览lua文件,有C语言基础即可看懂。
举例说明:
比如烧写一个bin文件output.bin到我们STM32-V6开发板
1、可以使用文件STM32F429BI_512K.lua做模板,仅需修理里面的bin文件名和目标Flash地址:
2、将output.bin文件放到TestBin文件夹里面:
3、H7-TOOL进入套机烧录后,选择STM32F429BI_512K.lua文件:
4、点击开始烧录:
5、烧录过程分擦除,编程和校验
部分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),程序自动记录
【四款芯片混合烧录效果】
领取专属 10元无门槛券
私享最新 技术干货