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.

[参考译文] TMS320F280025C:DCSM 锁定导致调试器出现故障、从而停止目标 CPU:(错误-1156 @ 0x0)

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1511076/tms320f280025c-dcsm-lock-leads-to-debugger-trouble-halting-target-cpu-error--1156-0x0

器件型号:TMS320F280025C
Thread 中讨论的其他器件:UNIFLASH

工具/软件:

您好:

我的初始开发状态为:

在 C2000 F280025C 上完全运行的引导加载程序。 它能够通过 CAN 和擦除/闪存固件进行通信。

问题:

为了保存我们的 IP、我添加了 OTP 配置(包括零 BOOT 引脚配置)。 首次使用 UNIFLASH 刷写它后、这会导致预期的行为-器件需要使用正确的 PWD 解锁等 此时、已刷写的引导加载程序未处于运行状态。 因此、我做了 POR 来首次启动代码执行。 器件 LED 开始以预期的方式闪烁、我能够通过 CAN 总线进行通信。 我的问题是、我无法再使用 XDS110和 UNIFLASH 或 CCS 解锁器件。 更准确地说、th 调试器无法再停止器件。 UNIFLASH 和 CCS 报告:  

停止目标 CPU 时出现问题:(错误-1156 @ 0x0)器件可能在低功耗模式下运行。 是否要使其退出此模式? 选择"是"以强制设备唤醒并重试此操作。 选择"否"可在不唤醒设备的情况下重试操作。 (仿真包20.0.0.3178)

问题:

1)出现上述问题的原因是什么? 如何继续使器件进入"已暂停"状态?

2)我的僵尸加载程序现在无法使用 TI ROM 闪存库擦除固件闪存扇区。 这可能是由 DCSM 引起的吗? 我想如果我能在解决上面的问题后解锁器件、我只需验证一下...

以下是对 OTP 使用的 DCSM 配置:

此致、我们将提前致以诚挚的问候、

Markus

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

    您好:

    如果您处于闪存引导模式并且 程序计数器位于安全存储器中、则将无法与调试器连接。 您必须使用等待引导模式、或在程序计数器位于非安全存储器位置时进行连接。 当调试器断开连接然后尝试与调试器连接时、也许您可以跳转到应用程序代码(假设它位于不安全的存储器中)?

    谢谢您、

    Luke

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

    您好 Luke、

    我升级了原理图和 DCSM 配置以支持第二种引导模式。 使用 wait boot 可解决初始问题。

    无论如何、只要器件被锁定、引导加载程序就不工作。 在使用 ROM 中的闪存 API 时失败。 这是因为 ROM 不是安全区域的一部分吗? 整个闪存受区域1保护、因此我不应违反任何 DCSM 限制...

    从 RAM 运行 ROM 闪存 API 可以解决问题吗?

    此致、

    Markus

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

    我在另一篇文章中看到、ROM Flash-API 无法从 RAM 运行。 因此、我链接了闪存中的库(显著增加引导加载程序大小)并尝试运行。 无论如何、如果不解锁该区域、引导加载程序就无法在同一区域内刷写扇区。 这是预期行为吗? 这可能是什么原因?

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

     在调用时、Flash-API 返回"RAM "(锁定器件、整个闪存和 zone1中的 Fapi_Error_Fail):

    Fapi_issueAsyncCommandWithAddress (Fapi_Erase 扇区、sectAddress);

    如果我在调用闪存 API 之前添加代码来解锁器件、则一切都正常运行。 这不是一个解决方案...

    出现此错误代码的原因可能是什么?

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

    错误是 DCSM (FLSEM 寄存器)中缺少信标。 在使用 API 解决问题之前、只需调用函数"CSM_claimZoneSemaphore (dcsm_FLSEM_ZONE1);"。