28. TinyUF2

28.1. 概述

TinyUF2这个示例提供了一个UF2 bootloader。

  • bootloader模式,运行起来之后,将在PC端枚举为一个u盘。这时可以将 构建在UF2容器中的一个应用,通过拖拽将其放入枚举到的u盘中。TinyUF2将把该容器 内的应用烧写进板载的flash中,烧写完成之后,将直接跳转至刚刚写入的应用。

  • 启动模式, 可以通过按住TinyUF2按键(请确认具体开发板 按键 部分描述)同时reset板子,进入bootloader模式,也可以直接跳转到已经通过TinyUF2 写入的flash镜像,若无镜像,将直接退回到bootloader模式。

28.1.1. UF2容器打包

一个可以被用作TinyUF2引导的应用需要满足以下条件:

  1. 该应用应该使用SDK中的flash_uf2或者flash_sdram_uf2链接脚本链接

  2. 运行一下命令打包生成UF2容器 (假设应用二进制文件名为hello_world.bin):

python3 uf2conv.py -f 0x0A4D5048 -b 0x80020000 -c -o update.uf2 hello_world.bin

该命令把hello_world.bin(从0x80020000启动)打包生成update.uf2这个UF2容器文件。 0x0A4D5048: 先楫半导体UF2的家族ID,需要和uf2conv.py匹配使用

28.2. 硬件设置

无特殊设置

28.3. 运行现象

  • 在启动模式下,如果有合法镜像已经写入正确位置,它会跳转至该应用,串口终端会输出如下信息:

TinyUF2
Jump to application @0x80020004(0x800291b7)

注:

  • 0x80020004 是写入的应用的起始地址

  • 0x800291b7 是写入的应用起始地址上的指令

  • 在bootloader模式下,如果一切正常,串口终端会输出如下信息:

TinyUF2
Starting DFU mode

此时可以插入USB线,在PC端将打包的UF2容器文件拖入枚举出的u盘内。烧写完成后,它会直接跳转 到该应用。