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.

[参考译文] CC1352R:工厂图片:理由/风险?

Guru**** 2541020 points


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

https://e2e.ti.com/support/wireless-connectivity/bluetooth-group/bluetooth/f/bluetooth-forum/1058451/cc1352r-factory-image-justification-risk

器件型号:CC1352R

Factory Image 支持是 TI SDK 中 OAD 代码的标准功能。

虽然我了解此功能的表面原因(发生故障时的稳健性)、但我想更好地了解此方案的详细信息、即哪些条件会使 Factory Image 有用、以及有哪些风险实现该功能?

如果既没有要复制的有效应用程序也没有有效的(OAD)映像、则将启动 Factory Image 机制。 但是、OAD 过程的工作方式可确保始终至少有一个有效映像:

  • 仅当 OAD 映像检查成功时、应用程序映像才会被擦除
  • 复制后、OAD 映像仅在应用程序映像检查成功后才会失效

因此、我可以想象的唯一情况是、如果以某种方式复制过程不起作用、或者图像在 OAD 过程中在非常小的窗口内损坏。 如果复制过程对真实图像无效、则可能对 Factory Image 也不起作用、并且在有效性检查和复制之间的窗口中图像损坏的可能性很小。

另一种情况可能是闪存老化会导致损坏。 这意味着我们的器件有缺陷、因此出厂映像不起作用。

那么长的故事简短、对它来说还有更多、是否有更多的随机攻击媒介具有更高的可能性、我看不到它们会进入 Factory Image 会帮助的致命情况?

最好

Daniel

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

    Daniel、您好!

    是的、你是对的。 另一个选项是

    -您已下载了不支持 OAD 的有效映像。  

    -您已下载了一个包含错误的映像,该错误会导致设备挂起。

    我们添加了安全 OAD、以避免随机映像加载到器件中。 (OAD 需要有符号映像。)

    谢谢、

    玛丽·H.

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

    您好、Marie、

    感谢您的回答、这将引导我回答一个后续问题:

    在这两种情况下、必须触发 BIM 来复制出厂映像、但我不知道这样做的机制: 对于 BIM、不支持 OAD 的映像看起来非常正常、并且也未检测到有缺陷的应用程序中的崩溃、是吗?

    我还没有看到在这些情况下激活复制机制的方法吗?

    谢谢、

    Daniel

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

    Daniel、您好!

    正确、需要触发 BIM 以使用出厂映像(通常在器件复位时按下按钮)。

    谢谢、
    玛丽·H

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

    明白。

    由于按下按钮主要是 Launchpad 功能、因此在定制硬件上必须找到其他方法(即通过自定义 BIM)来检测目标条件。

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

    请注意:由于我在这里获得的反馈、我已修补出工厂映像创建支持、 但是,oadFindExtFlimgAddr() 和 oadFindleastRecentlyUsedIdx()的其余代码(即 oadFindExtFlimgAddr()和 oadFindleastRecentlyUsedIdx()的组合)基于以下假设:外部闪存中至少存在一个有效标头(请参阅有关我随后遇到的无限循环的并行问题)。 必须修改这些函数(至少)才能支持完全"无头"的闪存。