主题中讨论的其他器件:UNIFLASH
高支持、
我尝试通过使用主机驱动程序 API 编写.ucf 文件来对服务包进行 OTA 升级。 我想知道在出现任何失败/无效文件时是否有回滚选项。 如何实现?
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.
高支持、
我尝试通过使用主机驱动程序 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 文件。 如何生成此签名文件?