#wch #ch32 #cli

bin+lib wchisp

A命令行实现WCHISPTool,用于刷写ch32 MCU

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嵌入式开发

GPL-2.0 许可证

65KB
1.5K SLoC

wchisp - Rust中的WCH ISP工具

crates.io

由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
  • ... (如果您想知道它是否适用于您的芯片,请随时打开一个问题)

贡献

此项目正在积极开发中。如果您有任何建议或错误报告,请提交一个issue。

如果它在您的设备上运行正常,请提交一个pull request来修改此README页面。

如果不正常,请提交一个issue。最好提供以下信息

  • 芯片类型(包括变体后缀)
  • USB数据包的调试打印
  • 与芯片协商的正确USB数据包(通过USBPcap或其他工具)

依赖项

~9–18MB
~233K SLoC