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.

[参考译文] AM263P4-Q1:<ECP>有关 CCM 自检错误强制模式的阐释

Guru**** 2693225 points

Other Parts Discussed in Thread: UNIFLASH

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1575636/am263p4-q1-ecp-clarification-regarding-ccm-self-test-error-forcing-mode

器件型号: AM263P4-Q1
Thread 中讨论的其他器件: UNIFLASH

工具/软件:

您好:  

我正在使用 AM263P-CC 电路板 需要澄清 CCM 自检错误强制模式。

根据 AM263P TRM 和寄存器附录、进入 CCM 自检错误强制模式的关键值应为 15 (0xF) 。 不过、在中 SDK 11.02.00.19 ,我观察到代码写入的键值 9 (0x9) 实现相同的目的。

当我在应用程序中启用自检错误强制时、ESM 错误状态寄存器 (ESM_ERR_STS) 显示位 19 已启用(根据 SDK 设置为 SDL_ESM0_CCM_0_selftest_ERR)、但我在 CCM 状态寄存器 (CCMR_CCMSR1) 中没有看到任何变化。 这些位保持不变、并且不会显示预期的强制错误指示。

您能否澄清以下几点?

  1. 正确的键值:
    应使用哪个键值 (0xF 或 0x9) 在 CCM 中正确启用自检错误强制模式?

  2. 寄存器行为:
     0x15向写入 0x9 或时 CCMR_CCMKEYR 寄存器 CCMR_CCMSR 寄存器 回读为0x00
    这是否是强制运行的自检错误的预期行为?

  3. 了解错误强制与自检错误强制:
    请您详细说明一下内部到底发生了什么情况。 具体来说、我们应该在 CCM 行为和 ESM 错误信令中看到哪些差异?

  4. 在中  SDK SDL_CCM 示例 、以下配置用于 ESM 初始化。 您能否阐明为什么将 1 和 8 用于 ESM 错误配置 (.esmErrorConfig)?

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

    尊敬的 Vandana:

    对延迟的回复表示歉意!

    我现在正在处理您的问题、将尝试尽快提供更新。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的更新!  

    此致、Vandana。

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

    Jagadish gundavarapu 

    对此查询有任何更新?

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

    尊敬的 Jagadish:  

    请尽快就此提供一些最新信息。 这将是真正有用的,谢谢。

    此致、

    Vandana Chintala

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

    Sure Vandana、

    我会尽量在一天结束时提供。

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

    尊敬的 Vandana:

    应使用哪个键值 (0xF 或 0x9) 来正确启用 CCM 中的自检错误强制模式?

    自检错误强制模式应仅使用 0xF。 我认为代码中似乎存在一些错误。

    注入错误应使用 0x9、但自检错误强制应仅使用 0xF、而不是 0x9。 我将与内部团队讨论一次、并就此向您反馈。

    --
    此致、
    Jagadish。

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

    好的、Jagadish、当然。
    另外、请务必告知我们在写入值 0xF 后 CCM 寄存器和 ESM 寄存器的行为。 我们正尝试在引导级别代码上启用 CCM

    此致、

    Vandana Chintala

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

    尊敬的 Jagadish:  

    您能告诉我什么时候可以预期自检错误强制模式会更新吗?  

    同时、 您还能否详细说明错误强制和自检错误强制模式之间的差异、具体来说、我们应该在两种模式下的 CCM 寄存器行为和 ESM 错误信号中看到哪些差异。  

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

    尊敬的 Vandana:

    对延迟的回复表示歉意!

    注入错误应使用 0x9、但自检错误强制应使用 0xF、而不是 0x9。 我将与内部团队讨论一次、并在此
    上向您反馈

    我提出了一个内部 JIRA、以便将此问题提交给软件开发团队。

    我正在等待他们确认此问题、我将在收到他们的回复后立即更新您。

    另外、请告知我们写入值 0xF 后的 CCM 寄存器和 ESM 寄存器的行为。 我们正在尝试在启动级别代码
    启用 CCM

    如 TRM 中所述、在自检错误强制模式中、与自检相关的 CCM 寄存器不会受到此自检错误强制模式的影响。 此测试后、只有与自检相关的 ESM 信号才会激活。

    我是说在这个测试中、一个不匹配模式应用于 CCM 模块、以便在一个时钟周期内进行自检、这意味着它将触发自检 ESM 错误标志:

    再次进行此测试后、CCM 将进入正常锁定步进模式。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    感谢您的更新。

    您提到在自检错误强制模式下、与自检相关的 CCM 寄存器将不会受到影响。 但是、在 SDK 11.00.19 CCM 示例中、自检错误强制模式的代码SDL_CCM_selfTest()通过进入函数testType = SDL_CCM_SELFTEST_TYPE_ERROR_FORCING

    在该函数内、启动错误强制模式后、实现会持续读取相应的 CCM 状态寄存器 (monitorTypeStatusRegister) 并检查是否SDL_CCM_ALL_STATUS_BITS更新了任何状态位 ()。 如果这些位永远不会改变、循环只会因为超时而退出、这会导致函数返回SDL_EFAIL

    如果 CCM 状态寄存器未更新、您能否查看此 SDK 函数并阐明如何使自检错误强制模式成功?  

    谢谢。此致、
    Vandana Chintala

      ...

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

    尊敬的 Vandana:

    在该函数内、启动错误强制模式后、实现会持续读取相应的 CCMmonitorTypeStatusRegister 状态寄存器 ()、并检查是否有任何状态位 ()SDL_CCM_ALL_STATUS_BITS 被更新。 如果这些位永远不会改变,循环只会因为超时而退出,这会导致函数返回SDL_EFAIL

    您的理解是正确的!

    自检错误强制模式应仅使用 0xF。 我认为代码中似乎有一些错误。

    如前所述、存在代码问题、并且为 自检错误强制模式配置了错误的模式、这就是之前提到的原因。 但您是对的、我们可能还需要更改终止模式的逻辑。

    我们的开发团队将对此进行分析、并在下一个版本中进行纠正。

    我的意思是、在此测试中、在 CCM 模块上应用了一个不匹配模式、以便在一个时钟周期内进行自检、这意味着它将触发自检 ESM 错误标志:

    在那之前、作为一种权变措施、您可以轮询“自检 ESM 错误标志“、如果在超时之前设置了此标志、则表示成功执行了“自检错误强制模式“、否则、如果超时、则存在问题自检错误强制模式。

    --
    此致、
    Jagadish。

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

    此外、我还注意到 CCM 事件位使能映射之间的差异。 我将附加为代码启用的 SDK 位配置映射和位配置。

    我已经使用过 0x001801E0 因为我仅启用下面提到的错误事件(我们仅使用内核 0):

    SDL_ESM0_R5FSS0_R5FSS0_BUS_MONITOR_ERR_PULSE_0 (69u)  

    SDL_ESM0_R5FSS0_R5FSS0_COMPARE_ERR_PULSE_0 (70u)

    SDL_ESM0_R5FSS0_R5FSS0_VIM_COMPARE_ERR_PULSE_0 (71U)  

    SDL_ESM0_R5FSS0_R5FSS0_CPU_miscompare_pulse_0 (72u)  

    SDL_ESM0_CCM_0_selftest_ERR (83U)

    SDL_ESM0_CCM_0_锁 步_COMPARE_ERR (84U)

    您还能否说明为什么  在 SDK 代码中未启用 BUS_MONITOR_ERR_PULSE 事件和 CPU_MISCOMPARE_PULSE 事件、以及是否需要启用这些事件。
          

    谢谢。此致、  
    Vandana Chintala

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

    Jagadish gundavarapu 
    尊敬的 Jagadish:  

    您能否提供有关自检错误强制模式下此事件位映射启用和 ESM 事件触发的一些澄清? 这会很有帮助。 谢谢!

    此致、  
    Vandana Chintala  

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

    尊敬的 Vandana:

    您  是否还请阐明为什么 SDK 代码中未启用 BUS_MONITOR_ERR_PULSE 和 CPU_MISCOMPARE_PULSE 事件、以及是否需要启用这些事件。

    对于 与 CPU/VIM 输出比较相关的测试(如 CCM 错误强制和 CCM 自检)、不需要启用 BUS_MONITOR_ERR_PULSE 和 CPU_MISCOMPARE_PULSE ESM 信号。

    因为使用这些测试对这些信号没有直接影响。 这些都有助于检查器 CPU 不活动监视器。

    您能否确认预期行为?

    我正在我的设置中测试这个、不久后会更新您。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:  

    感谢您的更新。 期待您对自检错误强制模式的预期行为的结果。   

    谢谢。此致、  
    Vandana Chintala

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

    尊敬的 Vandana:

    我对拖延的答复深表歉意。 周末之后有几天的休假、因此在响应时出现了延迟。

    今天我在实践中进行了测试。

    如 TRM 中所述、在自检错误强制模式下、与自检相关的 CCM 寄存器不会受到此自检错误强制模式的影响。 在此测试后、只有与自检相关的 ESM 信号才会被激活。

    只有 ESM 位将在 ESM 自检错误强制模式下激活、这是真的。

    对于自检错误强制模式测试、您只需在 SDK 代码中进行以下行修改。

    进行此修改后、请使用以下命令在 SDK 中重新构建 SDL 库。

    现在在 SDK 中构建 SDL 库后、我们必须从 CCS 清理构建 CCM 示例:

    完成清理后、现在使用 Uniflash 将生成的输出文件刷写到 OSPI、然后运行测试。

    我已经完成了、现在这三个测试都在我这边成功执行

    注意:在这里、我添加了一些调试日志、以验证我们是否在错误强制模式下获得 ESM 中断、我获得的是成功的中断、所有测试都已成功执行。

    在您的最后尝试此方法、并告诉我您对此的更新。

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:

    非常感谢您的答复。

    我试图写 0xf 对于自检错误强制模式、并且能够成功触发 SDL_ESM0_CCM_0_selftest_ERR 标志。 但是、我注意到在错误强制模式下、会触发三个错误标志:

    • SDL_ESM0_R5FSS0_R5FSS0_COMPARE_ERR_PULSE_0

    • SDL_ESM0_R5FSS0_R5FSS0_CPU_miscompare_pulse_0

    • SDL_ESM0_CCM_0_selftest_ERR

    我特别好奇为什么 错误比较 出现错误标志、因为如前所述、您提到此标志不应出现在这种情况下(CPU 输出比较功能、错误强制模式、写入的值= 0x9、我们不使用 SDK 进行引导级别开发)

    此外、希望能对 SDK 代码中使用的以下两个位图进行一些澄清。 我想了解为什么使用这些特定值以及它们代表什么。 因为我在中注意到了这一点 CCM_Test_esmInitConfig_main 、仅启用锁步比较错误和自检错误事件位、而 CPU 比较错误脉冲在两个位图中均未启用。 请就此提供一些意见。  


        

    提前感谢您的指导。

    此致、  
    Vandana Chintala

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

     Jagadish gundavarapu 

    尊敬的 Jagadish:

    如果您能让我们清楚地了解上述为 CCM 和 ESM 启用的 SDK 位映射、将会非常有用。 想知道为什么没有启用比较错误位和总线监控错误位。  

    我期望启用以下错误事件位、因为我们仅使用 RFSS0。  


    SDL_ESM0_R5FSS0_R5FSS0_BUS_MONITOR_ERR_PULSE_0 (69u)

    SDL_ESM0_R5FSS0_R5FSS0_COMPARE_ERR_PULSE_0 (70u)

    SDL_ESM0_R5FSS0_R5FSS0_VIM_COMPARE_ERR_PULSE_0 (71U)

    SDL_ESM0_R5FSS0_R5FSS0_CPU_miscompare_pulse_0 (72u)-  并不是基于我们之前的讨论而排除的

    SDL_ESM0_CCM_0_selftest_ERR (83U)

    SDL_ESM0_CCM_0_锁 步_COMPARE_ERR (84U)

    谢谢。此致、  
    Vandana Chintala

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

    尊敬的 Vandana:

    对延迟的回复表示歉意!

    在此示例中、我们正在执行的测试是我在下面突出显示的 CPU 输出比较诊断测试。

    这些测试主要触发下面突出显示的四个 ESM 中断:

    这就是 ESM 位图中我们仅启用这 4 个中断的原因:

    在上图中、前两个字与电平中断相关、下一个字是前 32 个脉冲中断、我们启用了我们在这里讨论的四个中断。

    您可以更正下面突出显示的 ESM 中断在  CPU 输出比较诊断测试期间也触发的内容。

    这只是预料之中的、在输出比较逻辑中的错误强制模式期间、我们特意提供不匹配序列来触发 CCM 错误、这样显然也会触发上述突出显示的 ESM 中断。 但是、根据我的理解、这些不是此输出比较逻辑测试所必需的、TRM 也没有涵盖这些中断用于输出比较诊断测试。

    TRM 提到了  校验器 CPU 不活动的 R5FSS0_CPU_miscompare 错误我在下面突出显示的监视器测试:

    --
    此致、
    Jagadish。

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

    尊敬的 Jagadish:  

    感谢您的更新。 我真的很感激。

    此致、  
    Vandana Chintala

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

    尊敬的 Vandana:

    感谢您的更新。 我真的很感激。

    我很高兴!

    --
    此致、
    Jagadish。