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.

[参考译文] CC3220SF-LAUNCHXL:CC3220SF Service Pack 的无线升级-回滚选项

Guru**** 2487425 points
Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/wireless-connectivity/wi-fi-group/wifi/f/wi-fi-forum/1209223/cc3220sf-launchxl-over-the-air-upgrade-of-cc3220sf-service-pack---rollback-option

器件型号:CC3220SF-LAUNCHXL
主题中讨论的其他器件:UNIFLASH

高支持、

我尝试通过使用主机驱动程序 API 编写.ucf 文件来对服务包进行 OTA 升级。 我想知道在出现任何失败/无效文件时是否有回滚选项。 如何实现?

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

    UCF 不提供失效防护支持。 使用 UCF 更新时、在写入新内容之前、闪存会被擦除。

    推荐的方法是仅在工厂使用 UCF (编程镜像)。

    OTA 随后将使用更新特定文件(例如 NWP 服务包、MCU 映像、证书目录或用户文件)。

    为简化工作、可使用 Uniflash/CCS 来创建 OTA TAR 映像、其中包含需要用元数据替换的文件。

    OTA 库(在 SDK 中)会在收到 TAR 文件时对其进行处理。

    该器件针对特定文件或整个 OTA 捆绑包提供了失效防护保护、能够在 OTA 序列期间出现任何错误时恢复。 o 一旦新映像运行、代码必须并提交更新(在测试内容且发现内容正常后)-否则将在下一次复位时执行自动重写。

    此机制还包括一个可选的数字签名、用于验证整个 OTA 内容的真实性。

    更多详细信息、请参阅 \docs\simplelink_mcu_sdk\Over_The_Air_Update_Guide.html 或 https://www.ti.com/lit/pdf/swra510

    另外、请参阅 编程人员指南中有关安全文件系统的信息。

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

    感谢您的回复、Kobi。

    我已经在使用 AWS FreeRTOS OTA Agent、由于内存限制、我无法将 TI OTA 库集成到代码中。 此外、AWS FreeRTOS 不支持捆绑包 OTA 升级(OTA TAR 映像处理)。 因此,这种选择对我来说是不可行的。 相反、是否有任何选项来启用回滚/失效防护选项或任何其他方法来保存.ucf 文件、以便我能够确保器件不会在出现无效文件时被砖化。

    此外、如果我需要测试无效的文件场景、我需要编辑.ucf 文件并生成相应的.ucf.signed.bin 文件。 如何生成此签名文件?

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

    您好!

    正如 Kobi 所说,你不能使用 UCF (API sl_FsProgramming())文件进行 OTA 更新。 此 API 可以使用、但它们在 CC32xx 器件中使用不是失效防护 糟糕的主意

    如果您不想使用 TI OTA 系统、则可以通过 sl_fs API 手动更新文件系统中的文件。 但您将从技术上复制 TI OTA 代码的功能。 在文件级别、您可以通过 API sl_FsCtl (SL_FS_CTL_ROLL..)回滚

    1月

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

    大家好、Jan、

    我尝试使用 API 对 UCF 进行服务包更新  sl_FsOpen、sl_FsWrite ()和 sl_FsClose () 不会 使用   sl_FsProgramming() ,这是现有代码。

    我将尝试使用  sl_FsCtl (SL_FS_CTL_ROLL..)。 谢谢。

    请同时回答这个问题

    此外,如果我要测试无效的文件方案,我需要编辑.ucf 文件并生成相应的.ucf.signed.bin 文件。 如何生成此签名文件?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    如果服务包文件最初是作为失效防护创建的,那么使用 sl_FsWrite()是安全的。

    您的测试没有任何意义。 无法为 ServicePack 生成有效签名。 只有在发布 Service Pack 时、德州仪器才可以这样做。 因为您没有用于签署服务包的私钥。 这是安全机制的基本要素、不允许 NWP 上的危害固件。

    1月