dcexpert 发表于 2024-5-17 16:48

CH32V2xx / CH32V3xx 的 UF2 bootloader

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

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

<p><a class="postlink" href="https://github.com/ArcaneNibble/wch-uf2">https://github.com/ArcaneNibble/wch-uf2</a></p>

freebsder 发表于 2024-5-17 17:25

<p>UF2 是个啥?</p>

dcexpert 发表于 2024-5-17 20:00

freebsder 发表于 2024-5-17 17:25
UF2 是个啥?

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

lugl4313820 发表于 2024-5-19 21:28

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

freebsder 发表于 2024-5-27 19:09

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

<p>磁盘方式?是和 mbr差不多一种东西?</p>

fxyc87 发表于 2024-5-28 12:27

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

dcexpert 发表于 2024-5-28 13:20

<div class='shownolgin' data-isdigest='no'>fxyc87 发表于 2024-5-28 12:27
我的GD32F303我也用了uf2方式更新固件,比较方便,可以不用FATFS即可解决U盘更新问题。

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" /></p>
</div><script>showreplylogin();</script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>
页: [1]
查看完整版本: CH32V2xx / CH32V3xx 的 UF2 bootloader