NRF52840 BLE OTA
1 . 概述
一般MCU DFU(Device Firmare Update)接口为USB、UART、I2C等有线接口。对于NRF52840这颗MCU来说,通过BLE可以做到无线的DFU,即OTA(over the air) DFU。这里主要试下Nordic官方的BLE OTA例程,看看有没有上面需要特别注意的点。
2. nRF5 SDK DFU工作原理
这里介绍下nRF5 SDK Secure DFU(SoftDevice-S140)工作的原理,即需要加密升级过程。
2.1 ROM空间规划
不同其他家MCU bootloader的放置位置,NRF52系列的Bootloader放置在App的后面,因为前面放置了SoftDevice即协议栈,SoftDevice里面前4K(0x1000)空间放置的是MBR( master boot record) 主引导记录部分,上电后由MBR决定跳转到Bootloader还是SoftDevice里面运行,MBR会读取NRF_UICR->NRFFW[0] 的值,不为0xFFFFFFF时即认为bootloader是有的,所以跳转到NRF_UICR->NRFFW[0]对应的值里运行。所以bootloader工程里会通过编译指令把bootloader起始地址设置到NRF_UICR->NRFFW[0](0x10001014)位置上, 此外bootloader 还会在MBR_BOOTLOADER_ADDR(0x0FF8)地址上写入Bootloader起始地址,在MBR_PARAM_PAGE_ADDR(0x0FFC)地址上也写入MBR Params Page Address。
这里APP是有两块的,就是Double bank架构,每次都运行App bank0里的程序,bootloader先更新App Bank1,等App Bank1更新OK后,再把Bank1里的内容搬移到Bank0,就完成了一次更新。这样架构能保

最低0.47元/天 解锁文章
1720

被折叠的 条评论
为什么被折叠?



