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