littlebot
Published on 2025-04-08 / 0 Visits
0

【源码】基于nRF52微控制器的UF2DFU引导加载程序

项目简介

本项目是专为Nordic nRF52系列微控制器设计的引导加载程序,支持CDC/DFU/UF2等多种固件更新方式。其中,UF2让设备连接电脑时呈现为U盘,用户复制.uf2格式固件文件即可完成更新。此外,还支持串口或OTA进行固件更新。

项目的主要特性和功能

  • UF2支持:通过U盘模式简单复制.uf2文件实现固件更新。
  • DFU支持:可通过串口或OTA进行固件更新。
  • 自升级功能:支持通过串口或OTA对引导加载程序本身升级。
  • 多板支持:适配多种Adafruit和第三方开发板,如Adafruit Feather nRF52840等。
  • 灵活的启动模式:借助DFUFRST引脚或GPREGRET寄存器,可灵活选择启动模式。

安装使用步骤

1. 安装依赖工具

确保安装python3,并执行以下命令安装adafruit-nrfutilbash pip3 install --user adafruit-nrfutil

2. 下载并编译项目

复制项目仓库并初始化子模块: bash cd Adafruit_nRF52_Bootloader git submodule update --init

3. 编译引导加载程序

使用make命令编译,指定目标开发板。如编译feather_nrf52840_express开发板的引导加载程序: bash make BOARD=feather_nrf52840_express all

4. 烧录引导加载程序

使用J-Link或DFU串口烧录。如使用J-Link烧录: bash make BOARD=feather_nrf52840_express flash 或使用DFU串口烧录: bash make BOARD=feather_nrf52840_express SERIAL=/dev/ttyACM0 flash-dfu

5. 使用UF2更新固件

将设备连到电脑,设备显示为U盘,复制.uf2文件到U盘自动更新固件。

6. 使用DFU更新固件

通过串口或OTA用adafruit-nrfutil工具更新。如串口更新: bash adafruit-nrfutil dfu serial -pkg firmware.zip -p /dev/ttyACM0 -b 115200

7. 创建自定义UF2文件

uf2conv.py脚本将.hex.bin文件转为.uf2格式。如转换firmware.hexbash uf2conv.py firmware.hex -c -f 0xADA52840

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】