0
这是针对具有双核A9 cortex CPU的XILINX-7000系列主板。在函数OEMInterruptHandler中,我想找出当前代码正在执行的核心。这是为了调试的目的,因为我发现当GPIO IRQ定位到CORE0时,一切正常,但在CORE1上,GPIO IRQ被抢占。 GPIO IRQ的优先级为0.所有其他IRQ的优先级均为0xA0。 IRQ 0-31针对两个内核,除GPIO之外的所有其他SPI都针对core0。操作系统是Windows CE 2013.这里是代码来自OEMInterruptHandler如何识别运行中断处理程序的核心?
ULONG sys_intr = SYSINTR_NOP;
UINT32 gic_iar = 0;
UINT32 core;
UINT32 irq = 0;
gic_iar = (INREG32(&g_GICCpu->INTACK));
irq = ((gic_iar & GIC_CPU_INTACK_INTID_MASK) << GIC_CPU_INTACK_INTID_SHIFT);
// read the core
core = readcore();
// enable interrupts
INTERRUPTS_ON();
....
我正在寻找执行readcore()函数。
感谢
是多数民众赞成在工作。我发现读取GIC_DIST的SGI TARGET寄存器也会给我CPU号码。也许这是董事会的具体情况,但似乎工作。 – Charvak