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引导的应用需要满足以下条件:
该应用应该使用SDK中的flash_uf2或者flash_sdram_uf2链接脚本链接
运行一下命令打包生成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盘内。烧写完成后,它会直接跳转 到该应用。