项目简介
本项目是专为Nordic nRF52系列微控制器设计的引导加载程序,支持CDC/DFU/UF2等多种固件更新方式。其中,UF2让设备连接电脑时呈现为U盘,用户复制.uf2
格式固件文件即可完成更新。此外,还支持串口或OTA进行固件更新。
项目的主要特性和功能
- UF2支持:通过U盘模式简单复制
.uf2
文件实现固件更新。 - DFU支持:可通过串口或OTA进行固件更新。
- 自升级功能:支持通过串口或OTA对引导加载程序本身升级。
- 多板支持:适配多种Adafruit和第三方开发板,如Adafruit Feather nRF52840等。
- 灵活的启动模式:借助
DFU
和FRST
引脚或GPREGRET
寄存器,可灵活选择启动模式。
安装使用步骤
1. 安装依赖工具
确保安装python3
,并执行以下命令安装adafruit-nrfutil
:
bash
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.hex
:
bash
uf2conv.py firmware.hex -c -f 0xADA52840
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】