ISP-55e0-WCH 用于 CH55x、CH57x 和 CH32Fx 的 ISP 闪存工具
该工具旨在通过 USB 在 Linux 上通过 USB 闪存 WinChipHead CH55x/CH57x/CH32Fx 系列,例如 CH551、CH552、CH554、CH559、CH579。
当设置为 ISP 模式时,芯片创建一个 4348:55e0 USB 设备,因此该项目的名称。
CH55x 系列中有一些类似的工具,但它们似乎都没有维护或可能没有适当的许可证。
- https://github.com/rgwan/librech551
- https://github.com/NgoHungCuong/vnproch551
- https://github.com/LoveMHz/vnproch55x(vnproch551 的后代)
- https://github.com/MarsTechHAN/ch552tool (用于 Python)
- https://github.com/juliuswwj/wchprog (用于 Python)
- https://github.com/SIGINT112/wchprog(wchprog 的分支,带串口支持)
所以我们必须重新发明轮子。
isp55e0 已经过测试:
- 带有引导加载程序版本 2.3.1 的 CH551
- 带有引导加载程序版本 2.3.1 的 CH552
- 带有引导加载程序版本 2.4.0 的 CH552
- 带有引导加载程序版本 2.4.0 的 CH554
- 带有引导加载程序版本 2.4.0 的 CH559
- 带有引导加载程序版本 2.8.0 的 CH579
- 带有引导加载程序版本 2.3.1 的 CH32F103C8T6
- CH32F103C8T6 带引导加载程序版本 2.5.0
建造
需要 libusb 开发包。在 Debian/Ubuntu 上,安装“libusb-1.0-0-dev”包。在 rpm 世界中,它通常被称为“libusb1-devel”。
类型:
制作
如何使用
帮助:
./isp55e0 --help 一些 WinChipHead MCU 的 ISP 编程器 选项: --code-flash, -f 固件到闪存 --code-verify, -c 验证现有固件 --data-flash, -k 数据到闪存 --data-verify, -l 验证现有数据 --data-dump, -m 将数据闪存转储到文件 --debug, -d 打开调试跟踪 --help, -h 这个帮助
查询设备。
./isp55e0
刷一些固件:
./isp55e0 -f fw.bin
对照闪存固件检查现有固件。
./isp55e0 -c fw.bin
请注意,如果验证失败,所有进一步的验证都将失败。要解决此问题,您需要重新启动芯片。
关于刷入 iHex 文件
不支持 iHex,但您可以使用 objcopy 将 iHex 文件转换为常规原始文件。
objcopy -I ihex -O 二进制 xxx.hex xxx.bin
CH32F103C8T6BluePill 克隆注意事项
CH32F103 芯片有两个 USB 端口。一些分线板有一个 USB 端口,有的两个都有。引导加载程序使用的 USB 端口连接到 PB6 (D-) 和 PB7 (D+),而常规端口连接到 PA11 (D-) 和 PA12 (D+)。如果您只有一个端口,则需要焊接才能访问它。如果存在两个端口,则底部端口由引导加载程序使用,顶部端口为普通端口,与 STM32F103 芯片兼容。
关于固件加密的说明
这些设备的缺点是固件必须加密并发送到设备。主机创建密钥。这个密钥被乱码并被发送到隐藏在垃圾字节中的引导加载程序。引导加载程序从数据包中的给定偏移量中提取密钥,然后在刷新或比较之前使用它来解密数据。这是一个简单的固定大小的异或键,所以很容易弄清楚,但这只是愚蠢的。密钥的最后一个字节是第一个字节和芯片类型的总和,所以你不能创建一个全零的假密钥。
还有许多其他制造商不做这种愚蠢的事情。
由于某种原因,dataflash 是不同的。写入必须加密,但读取是清晰的。
警告
未实施可选设置。程序不会尝试从错误中恢复,而是直接退出。

浙公网安备 33010602011771号