DFU是Device Firmware Update的缩写,翻译成中文是设备固件升级。设备固件升级是现在电子设备开发过程中不可规避的问题。下面将以谷雨物联的NRF52832DK评估板为硬件基础,详细介绍DFU的流程。
Bootloader 与 DFU 模型
在Nordic提供的SDK中,bootloader 与DFU是其中的一部分。开发者可以在安装的SDK目录中找到。当然开发者也可以在它们的基础上,开发编译自己的bootloader。
一个基本的bootloader在运行后,将会启动指定空间的用户程序。当然可以在几个不同的用户程序间切换,或者在启动用户程序之前对设备进行初始化。但bootloader最重要的功能就是DFU。它主要有以下几个特性:
- 更新application,SoftDevice和bootloader
- 认证更新
- 降级预防
- 硬件兼容性验证
- 多种传输方式:(BLE,UART,USBD)
- 支持application 携带或不带SoftDevice
- 支持用独立于SoftDevice的固件替换依赖于SoftDevice的固件
- 支持使用依赖于SoftDevice的固件替换独立于SoftDevice的固件
注:开发者可以查看Nordic的官方原文文档说明。Bootloader and DFU modules章节。
下面是bootloader功能模块的结构框图: