NRF52832DK-DFU固件升级教程
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功能模块的结构框图:
由上图可以看出它分为nrf_bootloader,nrf_crypto,nrf_dfu和nrf_dfu_transport功能模块。其中nrf_crypto实现安全特性,签名bootloader。在Nordic提供的SDK中,提供Secure Bootloader和Open Bootloader两种类型多种传输方式的bootloader。
注:关于nrf_bootloader,nrf_dfu,nrf_dfu_transport详细说明,可以查看Nordic的nRF5_SDK_15.2.0文档。