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.

[参考译文] CCS/TDA2EXEVM:在读取 GICC_IAR 寄存器= 0x3FF (1023)后获取中断 ID 值。

Guru**** 2606725 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/652960/ccs-tda2exevm-getting-interrupt-id-value-after-reading-gicc_iar-register-0x3ff-1023

器件型号:TDA2EXEVM

工具/软件:Code Composer Studio

您好!

我已经针对 计时器中断尝试过 PDK 示例"pdk_01_01_02\packages/ti\cSL\examples\timer\timer_app"。中断服务正确、但我正在尝试读取 GCC_IAR 寄存器(存储器地址 0x4821200C)  此时内存浏览器显示0x3FF 值、然后进入中止处理程序。当我没有打开 CCS 的内存浏览器时、读取 TIMER4中断的值为0x24、但 Timer4交叉开关中断实际上是0x23 (35)。如何读取 Cortex A15中的中断 ID 值?

此致、

Kiran Vidhid

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

    以下内容来自 GIC 规范:
    "读取 GICC_IAR 会返回 CPU 接口的最高优先级挂起中断的中断 ID。 。
    如果应用了以下任一操作、则读取返回1023的杂散中断 ID:
    •禁用分配器向 CPU 接口转发中断
    •通过 CPU 接口向连接的处理器发送中断信号被禁用
    •CPU 接口上没有挂起的中断具有足够的优先级、接口可以将其发送给处理器。"

    这意味着只有当有一个挂起的中断时、读取才是正确的。
    此外、纵横制 id 与中断 ID 不同。 该寄存器将为您提供中断行号。
    有关更多详细信息、请参阅 IHI0048B_b_GIC_architecture_specification pdf 的"第4.4.4节中断确认寄存器、GICC_IAR"。

    此致、
    Rishabh