Other Parts Discussed in Thread: TMS320F2800157, C2000WARE
器件型号: LAUNCHXL-F2800157
主题中讨论的其他器件: TMS320F2800157、 C2000WARE
您好团队:
我目前正在 使用 TI 应用报告 SPRACN1(使用 GPIO 控制的引导选择基于 SCI 引导的固件更新)中所述的方法在 TMS320F2800157 (C2000) 器件上实现软件控制的固件更新机制。
虽然当前方法适用于正常的固件更新流、但我对 电源故障场景中的稳健性和恢复有所担忧。
电流实现
- 器件: TMS320F2800157
- 引导配置:使用 GPIO 通过 OTP 自定义引导(类似于 SPRACN1)
- 更新方法:SCI 引导+串行闪存编程器
- 流量:
- 应用程序将 GPIO 设置为高电平→RESET
- 引导 ROM 进入 SCI 引导
- 内核下载和编程应用程序
问题
如果 在闪存擦除/写入期间断电、系统可能会:
- 再次引导至 闪存模式(GPIO 低电平)
- 但闪存可能包含 损坏/部分应用程序
- 导致 无效执行或不可恢复状态
这使得当前方法 在生产中具有非失效防护功能
要求
我希望通过 强大的固件更新机制来增强设计、其中包括:
1、双映像支持
- 闪存中的 A/B 应用程序分区
- 安全更新而不覆盖正在运行的映像
- 发生故障时的回滚功能
2.基于闪存的更新标志
- 存储在闪存中的持续标志、表示:
- 正在更新
- 更新成功
- 基于此标志而不是仅基于 GPIO 的引导决策
3、固件验证
- 跳转到应用程序之前的 CRC/校验和验证
- 检测损坏的图像
- 自动回退到更新模式
具体问题
-
TI 是否 为以下内容提供任何参考示例或演示工程:
- F2800157(或类似器件)上的双映像固件更新
- 基于闪存标志的引导流程控制
- 固件验证(CRC/校验和)
-
是否有任何 C2000Ware 示例/库/API 可用于:
- 映像完整性验证
- 闪存元数据处理(标志/标头)
-
是否有任何 引导加载程序参考设计 支持:
- 失效防护固件更新
- 电源中断后恢复
-
是否有 以下方面的建议最佳实践:
- 实现双映像的闪存分区
- 通过 SCI 实现可靠固件更新
- 处理不完整的固件更新
附加上下文
- 用例: 需要可靠固件更新的生产系统
- 现场更新期间无 JTAG 访问
- 要求: 更新期间从电源故障中恢复失效防护
预期结果
我正在寻找:
- 参考设计(如果可用)
- 应用手册或内部文档
- 建议的架构/设计方法
感谢您的支持。
此致、
Kamarudheen MD