nrf51822 中的 BLE bootloader 支持更新协议栈、bootloader 和应用程序。这种更新被称
之为 Device Firmware Update。我们可以将新的协议栈、bootloader 或者应用程序通过 Nordic
的 BLE DFU Service 进行空中更新(Over The Air)。
首先我们来看一下存储空间的布局
如图为 nrf51822 256K 的 Flash 分布。协议栈不同,SD size 大小会不一样。这里以 SDK9.0
S110 协议栈为例。协议栈大小为 96k,所以为 0x00018000。
这里 MBR 的功能是,当系统启动时 MBR 会检测 bootloader 地址是否有效,来决定启动
应用程序或者启动 bootloader。
由上图还可以看出,在 Application 区域中有 application、App data 和 DFU bootloader。
Application 即为我们的应用程序的代码。
DFU bootloader 是具有 BLE DFU 功能的 bootloader 代码。
App data 是程序中使用保存的 flash 的数据。