8个版本
0.2.2 | 2023年2月20日 |
---|---|
0.2.1 | 2023年1月28日 |
0.2.0 | 2022年11月13日 |
0.1.4 | 2022年11月13日 |
0.1.3 | 2022年5月14日 |
#1701 在 嵌入式开发
65KB
1.5K SLoC
wchisp - Rust中的WCH ISP工具
由ch32-rs团队在Rust中实现的WCHISPTool的命令行版本。
此工具仍在开发中。
- 注意:CH32V003没有USB ISP接口,请使用WCH-Link进行编程
- 注意:此工具适用于USB ISP,不与WCH-Link一起使用
- 目前正在开发WCH-Link的实现
待办事项
- 芯片检测,识别
wchisp probe
wchisp info
- 闪存和验证代码
- ELF解析
- 支持hex、bin、ihex
- 跳过擦除、验证、重置
- 芯片配置寄存器转储
wchisp config
- 适用于大多数芯片,但并非所有。欢迎提出问题和PR
- 写入配置寄存器
- 将配置寄存器重置为默认(未受保护,调试启用状态)
- 使用友好的寄存器名称写入配置?例如
wchisp config set SRAM_CODE_MODE=1 ...
- EEPROM转储
- EEPROM擦除
- EEPROM写入
- 从多个芯片中选择(使用
-d
选择索引)wchisp -d 0 info
- 通过UART或网络进行ISP
用法
> cargo install wchisp --git https://github.com/ch32-rs/wchisp
> wchisp info
14:51:24 [INFO] Chip: CH32V307VCT6[0x7017] (Code Flash: 256KiB)
14:51:24 [INFO] Chip UID: 30-78-3e-26-3b-38-a9-d6
14:51:24 [INFO] BTVER(bootloader ver): 02.60
14:51:24 [INFO] Code Flash protected: false
RDPR_USER: 0x9F605AA5
[7:0] RDPR 0b10100101 (0xA5)
`- Unprotected
[16:16] IWDG_SW 0b0 (0x0)
`- IWDG enabled by the software
[17:17] STOP_RST 0b0 (0x0)
`- Enable
[18:18] STANDBY_RST 0b0 (0x0)
`- Enable
[23:21] SRAM_CODE_MODE 0b11 (0x3)
`- CODE-228KB + RAM-32KB
DATA: 0x00FF00FF
[7:0] DATA0 0b11111111 (0xFF)
[23:16] DATA1 0b11111111 (0xFF)
WRP: 0xFFFFFFFF
`- Unprotected
> wchisp flash ./path/to/firmware.{bin,hex,elf}
> wchisp config info
> wchisp config reset
测试平台
此工具应在大多数WCH MCU芯片上工作。但我在其他芯片上尚未进行测试。
- CH32V307
- VCT6
- RCT6 #8
- CH32V103
- CH32F103
- CH552
- 工作,但可能存在错误 #10 #14
- CH582
- CH58xM-EVT
- CH573
- CH579
- BTVER: 02.90 #18
- CH559
- CH559TL_MINIEVT_V20 by wch.cn
- CH32V203
- ... (如果您想知道它是否适用于您的芯片,请随时打开一个问题)
相关作品(多谢!)
- https://github.com/MarsTechHAN/ch552tool
- https://github.com/MarsTechHAN/ch552tool/pull/21 by @Pe3ucTop
- https://github.com/Blinkinlabs/ch554_sdcc
- https://github.com/rgwan/librech551
- https://github.com/jobitjoseph/CH55XDuino
- https://github.com/frank-zago/isp55e0
贡献
此项目正在积极开发中。如果您有任何建议或错误报告,请提交一个issue。
如果它在您的设备上运行正常,请提交一个pull request来修改此README页面。
如果不正常,请提交一个issue。最好提供以下信息
- 芯片类型(包括变体后缀)
- USB数据包的调试打印
- 与芯片协商的正确USB数据包(通过USBPcap或其他工具)
依赖项
~9–18MB
~233K SLoC