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。