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.

[参考译文] 编译器/TDA2EXEVM:如何处理 Cortex-A15中的嵌套中断?

Guru**** 2609895 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/654804/compiler-tda2exevm-how-to-handle-the-nest-interrupt-in-cortex-a15

器件型号:TDA2EXEVM

工具/软件:TI C/C++编译器

您好!

在 Cortex A15 -MPU 中:我们正在启动三个计时器 Timer3、Timer9、Timer11,同时启用所有3的中断。我们已将 timer11、timer9 和 timer3的优先级配置得更高。 当使用一个计时器 时、它可以正常工作。当我们 在时间启动两个计时器时、例如 timer3和 timer9、我们得到 timer3的中断、然后是 timer9的中断。  定时器9中断的 Timer3 ISR 子例程之前出现。定时器9中断未正确退出 ISR 退出例程。

如何处理 cortex A15中的嵌套 ISR?

  

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

    您是否对所有这些计时器中断使用通用 ISR?
    您能否详细说明"定时器9中断未正确退出"?
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Prasad、您好!
    是的、我正在使用全部三个定时器中断。我在相同的时间开始时、加载值有一些差异、并且当我在执行 timer3中断子例程时、我的时间9中断正到达 Timer9中断子例程。Timer9子例程完成后、它不会进入 Timer3 ISR 子例程 因为 LR 我获取的是 IRQ 处理程序的 LR。因此、我的 PC 会中止处理程序例程。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Kiran、

    请参阅 pdk\packages/ti\cSL\src\IP\ARM_GIC\V0\csl_armGicAux.h 和 pdk\packages/ti\cSL\src\IP\ARM_GIC\V0\CSL_a15_intr.asm 文件中的 CSL_armGicCallBackFxn。
    在这里、中断在系统模式中被处理以处理中断嵌套。 用户模式 LR 由回调函数存储、并在 ISR 调用后恢复。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    下面的 ARM 博文也对此进行了总结
    infocenter.arm.com/.../index.jsp