TI E2E™ 设计支持论坛将于 5 月 30 日至 6 月 1 日进行维护。如果您在此期间需要技术支持,请联系 TI 的客户支持中心寻求帮助。

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.

[参考译文] TMS570LS3137:CCM-R4F:自检、错误强制&放大器;自检错误强制模式可中断?

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/774827/tms570ls3137-ccm-r4f-self-test-error-forcing-self-test-error-forcing-mode-interruptable

器件型号:TMS570LS3137
主题中讨论的其他器件:HALCOGEN

您好!

我正在尝试使用 ccmSelfCheck() 函数(在 Halcogen 中生成)进行 CCM 自检。

当我在不处理 ESM 生成的中断的情况下执行自检(针对标志"CCM-R4F 自检错误"的低电平和针对"CCM-R4F -比较"的高电平)、自检通过正确(自检、错误强制和自检错误强制)。

但是、现在当我尝试对低电平中断执行一些处理时、当设置"CCM-R4F 自检错误"标志时、自检永远不会完成。 更精确地说、当 CCM 配置为 CCM 错误强制模式(CCMKEYR = 0x9U)时、会触发低电平中断、之后自检不会继续 (由于 CCM 的原因、不可能进入调试模式、因此很难知道实际发生了什么、但我当然知道代码的执行过程不会超过"while (CCMKEYR!= 0U){}")。

在处理低电平中断的函数中、我只是为了测试目的将引脚设置为高电平、所以我甚至不会清除 ESM 标志。 我不确定当高级中断变为 handeld 时会发生什么情况、因为这还不起作用、尽管我确定进入错误强制模式后测试了错误引脚、并且该引脚变为低电平、因此"CCM-R4F -比较"标志也会被置位 短时间内。

我的问题:

CCM 的自检是否可能不会中断? 这是否意味着我必须在启动 ccmSelfCheck()函数并稍后启用 IRQ 和 FIQ,因为我们的计划是在我们的应用程序中定期执行此自检?

提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好、Semir、
    在运行此测试时、您是否断开了调试器与目标的连接?

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

    调试器物理连接到目标、但我不处于调试模式。 由于测试在我不处理 ESM 生成的中断时成功完成、我假设根据 TRM 中的9.3.5 (CPU 调试模式期间的运行)、保持调试器连接是正常的。

    此致、
    Semir Spahic
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    您可以尝试断开连接的调试器吗?

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

    我刚刚尝试断开调试器、得到的结果相同。

    但是、中断 CCM 自检并处理 ESM 生成的中断通常是可以的吗? 如果是这样、可能是我的中断例程中出现了问题、但我无法看到、因为我无法处于调试模式。

    是否有一种简单的方法来生成一个 ESM 组1标志来在调试模式中触发一个低电平中断? 这样、我就可以看到在我处理低电平中断后会发生什么情况。

    此致、
    Semir Spahic
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    ESM 组2中断不能被禁用并且它们是高优先级。 CCM-R4F 被分配给 ESM 组2。 我刚刚进行了测试、在 esmGroup2Notification 函数中、我调用 gioSetBit 来打开用户 LED。 指示灯亮起。

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

    好的。 用户 LED 亮起后、自检是否正确完成?

    在我的情况下、在我返回中断例程后、自检停止。

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

    您好!

    现在、我为高级中断提供服务的例程也起作用了、我认为我发现了问题是什么。

    与此相关的代码片段:

    当我在错误强制模式下配置 CCM 时、组2 ESM 标志被置位、并且我的中断例程被调用。 现在、如果我不清除已设置的 ESM 标志、中断例程将反复被调用(我在例程中切换了一个测试引脚以确认它)、并且我被卡住了。 正确的做法当然是清除触发中断的标志、如果我在我的例程内执行该操作、自检继续、在第77行中、条件检查是否正确的 ESM 标志在错误被强制后设置、但自从我们设置后 已清除中断例程中的该位该检查失败、我的自检失败。

    问:

    这个自检是否用于处理由 ESM 生成的中断? 如果是这样、那么可以在不更改 HALCOGEN 生成的代码的情况下完成此操作吗? 还有其他建议吗?

    提前感谢、

    Semir Spahic

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!
    很抱歉耽误你的回答。
    HALCoGen 生成的序列假定在运行 CCM 的这个自检时不启用中断。 如果清除 ISR 中的标志、则无需检查代码序列中是否仍设置了该标志。 由于 HALCoGen 在检查要设置的标志之前没有生成用户代码段、如果您使用中断清除自检错误标志、则可以跳过标志状态检查。 或者、您可以使用 HALCoGen 代码序列作为参考、并编写您自己的代码例程。

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

    我已经调整了 Halcogen 生成的 ccmSelfTest()函数,它的工作方式符合预期。 我还想写一篇文章、以便可以解决问题、但不知怎么可能忘记了。

    感谢您的回答。

    此致、
    Semir Spahic