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.

[参考译文] TMS570LC4357-ESM2:调试时 EP 出错。

Guru**** 2587365 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1575417/tms570lc4357-ep-esm2-error-while-debugging

器件型号:TMS570LC4357-TMS570LC4357 EP


工具/软件:

您好:

如果 在调试期间刷写代码后立即执行 esm2 ISR、则会出现什么问题。

PS:ESM2 状态位值为 0x0080

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

    尊敬的 Deepak:

    1. 根本原因:
    • 该错误是由 CPU 的推测指令提取引起的
    • CPU 可能会尝试从随机闪存地址/RAM 地址读取、从而生成不可纠正的 ECC 错误。
    1. 行为:
    • CPU 丢弃推测获取的数据、不会生成中止
    • 但是、存储器读取仍会触发 CPU 事件信号、指示 ESM 存在一个不可纠正的闪存错误
    • 这会导致触发 ESM2 错误
    1. 解决方案选项:

    2. MPU 配置:

      • 您可以通过将 MPU 配置为“无访问“将未使用的闪存区域设置为“无访问“来防止此错误
      • 当 MPU 阻止对未使用区域的访问时、CPU 不能从这些区域执行推测获取、从而防止 ESM2 错误
    3. ECC 编程:

      • 确保为可能访问的所有闪存空间编程正确的 ECC 值
      • 在读取编程/数据之前、必须正确对所有闪存空间(闪存组 0 至 6)的 ECC 值进行编程
    4. 重要注意事项:

    • 这是一种与 CPU 推测获取机制相关的已知行为
    • 发生该错误的原因是推测性获取尝试访问具有无效或未编程 ECC 值的闪存区域
    • 组 2 错误(与此错误类似)将始终触发 nERROR 引脚、因为它们无法被禁用。

    --
    此致、
    Jagadish。