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.

[参考译文] CC1310:引导加载程序:避免在通过 UART 进行 FW 更新期间产生毛细

Guru**** 2487265 points
Other Parts Discussed in Thread: CC1310

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

https://e2e.ti.com/support/wireless-connectivity/sub-1-ghz-group/sub-1-ghz/f/sub-1-ghz-forum/1180555/cc1310-bootloader-avoid-bricking-during-fw-updates-via-uart

器件型号:CC1310

您好!

在我们的用例中、cc1310将成为产品的一部分。

我们遵循了应用手册 swra466c http://www.ti.com/lit/zip/swra466 和技术参考手册、并且能够通过 UART 执行固件更新。
但在开发和调试过程中、我已经两次欺骗了 cc1310芯片。

我们拥有128KB 闪存的 cc1310芯片。 在编译后通过 Code Composer 中的 UART 为固件更新生成的 bin 文件也是128KB。

从应用手册中可以看到、二进制文件和闪存之间有一对一的映射。
这意味着写入闪存存储器后、二进制文件将完全重新写入整个闪存、包括 ccfg 寄存器(闪存存储器的最后一个扇区)。 1) 1)这是正确的吗?

我承认在调试期间停止更新过程时可能会不小心、并且可能损坏了 ccfg 寄存器、从而解释了欺骗 c1310芯片的原因。

为了防止今后发生这种情况,我们制定了以下计划:
-在生产过程中、当我们必须使用 JTAG 进行闪存时、我们将刷写整个芯片、包括 CCFG 区域(启用 FW 更新需要此功能)
但是、当我们在产品发布后(通过 OTA 然后通过 UART)进行 FW 更新时、我们更改了更新过程、因此我们完全排除了 CCFG 区域、并且只对存储器的其他部分进行写入。

2) 2)是否有合理的想法、或者是否有更好/更安全的方法或建议进行 FW 更新?