CC2340R5: OAD过程失败后,复位MCU导致flash内容丢失

Part Number: CC2340R5

TI你好,

我的工程分为MCU_BOOT, persistent, app三个代码段。按如下分配

Item
offset(HEX)
SIZE(HEX)
comment
MCU_BOOT
00000
6000
MCU_boot代码空间
FBL_PERSISTENT
6000
2C000
FBL代码空间,OAD服务
APP_CODE
32000
47800
APP代码空间
共享FLASH
79800
800
APP和 MCU_boot代码共享,用于存放版本信息
FREE
7A000
800
空闲
BACKUP
7A800
800
NVS
NVS_0
7B000
800
NVS
NVS_1
7B800
800
NVS
FEE
7C000
2000
模拟EEPROM
BLE_STACK
7E000
2000
蓝牙协议栈链接信息

1.假设我正常完成OAD过程,更新了app代码,那么上表中的共享FLASH, NVS_0 和 NVS_1这些flash的内容都仍然保留。

2.如在OAD失败,但MCU没有复位过,此时仍可以通过persistent代码段发出的广播继续OAD。OAD完成后,共享FLASH, NVS_0 和 NVS_1 这些flash的内容都仍然保留。

3.但是OAD失败,MCU复位过。此时即使再次完成OAD。共享FLASH, NVS_0 和 NVS_1 这些flash的内容会全部被清除为FF。
请帮忙看看如何才能做到在第3种情况下,OAD失败后复位MCU,上述的FLASH保留原,不被清除为FF。