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:CAM 和 EPC 中断

Guru**** 2482105 points


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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/858740/tms570lc4357-cam-and-epc-interrupts

器件型号:TMS570LC4357

您好!

进入 CAM 诊断模式以将所有 CAM 索引设置为“已占用”状态后,要生成 CAM 完全中断,在我的程序中正确生成“EPC 完全”中断(VIM124)。

但是、将 INTREQ3 (VIM)中的相应位置位似乎不足以使 EPC 挂起中断无效。

您能告诉我需要添加哪些操作来清除 VIM 中的"EPC full"标志吗?

此致、

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

    您好!

    CPU 可以在诊断模式下(启用诊断模式并填充 CAM 之前的状态)恢复 CAM 的内容、然后通过向要清除的标志写入1来清除 EPC 错误状态寄存器(EPCERRSTAT)中的 CAM_FULL 和 CAM_OVFLW (如果置位)状态标志。 然后、可以通过写入1来清除 VIM 中的中断标志。

    此致、Sunil

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

    感谢您的回答。

    因此、在启用诊断模式之前、我使用值将 CAM 内容从地址0xFFFF0CA0恢复到了0xFFFFFFD1C。

    然后清除 CAM_OVFLW 位、以便 EPCERRSTAT 从0x5 (发生时)变为0x4。

    但是中断仍处于挂起状态(无法写入 CAM 索引),并且无法清除 VIM 标志。

    可能需要在另一个寄存器中执行什么操作?

    此致、

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

    请通过向 EPCERRSTAT 寄存器写入0x5来清除 CAM_FULL 和 CAM_OVFLW 标志。 EPC 的中断请求在 CAM_FULL 条件下生成。

    此致、Sunil

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

    感谢你的帮助。

    问题已解决。

    在 CAM 索引恢复之后以及 CAM 内容恢复之前、应立即清除 EPCERRSTAT 中的 CAM_FULL 标志。

    此致、