[讨论] CH32V2xx / CH32V3xx 的 UF2 bootloader

dcexpert   2024-5-17 16:48 楼主

WCH RISC-V微控制器的UF2引导加载程序。这允许通过将文件拖动到虚拟USB大容量存储设备更新程序,不需要特殊的软件。

使用说明

  • 在0.5秒内通过双击复位按钮触发
  • 需要使用 R16BKP_DATAR10
    • 写入0x4170('Ap')以立即无延迟地引导到应用程序中
    • 写入0x624c('bL')以无条件进入引导加载程序
  • 适合《4096字节
  • 使用MounRiver GCC V1.91进行测试和构建
    • 通过使用不在上游的“XW”指令来提高代码大小
  • 仅支持USBD外围设备(即不支持USBFS)
    • USBD和USBFS完全不同,QFN28封装(在LCSC上数量最多)只结合了USBD
    • 注意,如果使用官方devkit的USBD需要USB a-a电缆
  • 内部8 MHz振荡器(尽管存在稳定性问题)
    • HSI振荡器的容差(-1.0%至+1.6%)远远超出USB全速($\pm$0.25%)的指定范围,但在实践中似乎有效
    • ISP ROM引导加载程序也会执行此操作
  • 应适用于大多数CH32V2xx和CH32V3xx系列,并对硬编码常数进行适当更改。
  • 允许下载到带有“非主闪存”标志的闪存和SRAM(这就是RP2040 bootrom的工作原理)
    • Flash下载地址必须为08xxxxxx(即不从0开始)
    • SRAM下载地址必须为20xxxxxx
    • 可以使用SRAM的整个尺寸,因为USBD包含独立于主SRAM的缓冲存储器
  • 下载完成后自动重新启动,但只有在下载程序足够小的情况下才有效。较大的下载程序仍然会更新,但不会触发自动重新启动,需要手动重新启动。

https://github.com/ArcaneNibble/wch-uf2

回复评论 (6)

UF2 是个啥?

默认摸鱼,再摸鱼。2022、9、28
点赞  2024-5-17 17:25
引用: freebsder 发表于 2024-5-17 17:25 UF2 是个啥?

微软出的bootloader格式,使用磁盘方式更新程序。

点赞  2024-5-17 20:00

这用起来非常爽呀,解决文件的大难题了。

点赞  2024-5-19 21:28
引用: dcexpert 发表于 2024-5-17 20:00 微软出的bootloader格式,使用磁盘方式更新程序。

磁盘方式?是和 mbr差不多一种东西?

默认摸鱼,再摸鱼。2022、9、28
点赞  2024-5-27 19:09

我的GD32F303我也用了uf2方式更新固件,比较方便,可以不用FATFS即可解决U盘更新问题。

点赞 (1) 2024-5-28 12:27
引用: fxyc87 发表于 2024-5-28 12:27 我的GD32F303我也用了uf2方式更新固件,比较方便,可以不用FATFS即可解决U盘更新问题。

点赞  2024-5-28 13:20
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复