This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] 编译器/CC3220MODA:如何防止 OTA 过程中擦除内部闪存区域?

Guru**** 2585255 points
Other Parts Discussed in Thread: CC3220SF

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/747150/compiler-cc3220moda-how-to-prevent-the-erase-of-an-internal-flash-memory-region-during-the-ota-process

器件型号:CC3220MODA
主题中讨论的其他器件:CC3220SF

工具/软件:TI C/C++编译器

我创建了一个内部闪存区域(FLASH_W)来在代码执行期间保存一些数据、为此、我配置了 CC3220SF_LAUNCHXL_TIRTOS.cmd、如所述   

如下所示:

内存
{
/*引导加载程序在初始化期间使用 FLASH_HDR */
Flash_HDR (RX):origin = 0x01000000,length = 0x7FF /* 2KB */
闪存 (Rx):origin = 0x01000800,length = 0x0BF800 // 766KB */
Flash_W (rwx):origin = 0x010C0000,length = 0x40000 // 256KB */

SRAM (RWX):origin = 0x20000000,length = 0x00040000 // 256KB */
} 

它运行良好、但在 OTA 过程完成后、整个内部闪存会被擦除(在系统重新引导后)、这是因为我丢失了 FLASH_W 区域中存储的所有数据、是否有任何方法可以防止这种情况发生?

提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    耶稣,

    不幸的是、不是 这是 OTA 安全功能的一部分、原因是要确保整个代码库的安全(存储器区域中没有未知代码)

    我建议您做一些事情:首先、您可以将所有保存的数据移动到串行闪存中的文件中。 这将确保您在 OTA 更新时不会丢失它。 如果您对此犹豫不决、则只能在执行 OTA 时将 FLASH_W 段移动到串行闪存、然后在完成后将其恢复。

    希望这有所帮助、
    Vince
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢,现在它可以工作了!