I set up CpIntc of sysbios to use the following system to host interrupt mapping:
[C66xx_7] m_sysInt(15) => m_hostInt(25)
[C66xx_0] m_sysInt(8) => m_hostInt(0)
[C66xx_1] m_sysInt(9) => m_hostInt(1)
[C66xx_2] m_sysInt(10) => m_hostInt(8)
[C66xx_3] m_sysInt(11) => m_hostInt(9)
[C66xx_4] m_sysInt(12) => m_hostInt(16)
[C66xx_5] m_sysInt(13) => m_hostInt(17)
[C66xx_6] m_sysInt(14) => m_hostInt(24)
The system interrupts corresponds the completion interrupts of the 2nd EDMA. In cfg script I configured the corresponding hardware interrupts as follows:
CpIntc.mapHostIntToHwiMeta(0, 4 + 0);
CpIntc.mapHostIntToHwiMeta(1, 4 + 8);
CpIntc.mapHostIntToHwiMeta(8, 4 + 2);
CpIntc.mapHostIntToHwiMeta(9, 4 + 3);
CpIntc.mapHostIntToHwiMeta(16, 4 + 4);
CpIntc.mapHostIntToHwiMeta(17, 4 + 5);
CpIntc.mapHostIntToHwiMeta(24, 4 + 6);
CpIntc.mapHostIntToHwiMeta(25, 4 + 7);
If I use Edma transfer completion to trigger the interrupts, I get the following errors:
[C66xx_1] ti.sysbios.family.c66.tci66xx.CpIntc: line 311: E_unpluggedSysInt: System Interrupt# 11 is unplugged
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
[C66xx_2] ti.sysbios.family.c66.tci66xx.CpIntc: line 311: E_unpluggedSysInt: System Interrupt# 8 is unplugged
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
[C66xx_3] ti.sysbios.family.c66.tci66xx.CpIntc: line 311: E_unpluggedSysInt: System Interrupt# 10 is unplugged
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
[C66xx_5] ti.sysbios.family.c66.tci66xx.CpIntc: line 311: E_unpluggedSysInt: System Interrupt# 12 is unplugged
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
[C66xx_6] ti.sysbios.family.c66.tci66xx.CpIntc: line 311: E_unpluggedSysInt: System Interrupt# 13 is unplugged
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
[C66xx_7] ti.sysbios.family.c66.tci66xx.CpIntc: line 311: E_unpluggedSysInt: System Interrupt# 14 is unplugged
ti.sysbios.gates.GateMutex: line 97: assertion failure: A_badContext: bad calling context. See GateMutex API doc for details.
[C66xx_2] xdc.runtime.Error.raise: terminating execution
[C66xx_3] xdc.runtime.Error.raise: terminating execution
[C66xx_5] xdc.runtime.Error.raise: terminating execution
[C66xx_7] xdc.runtime.Error.raise: terminating execution
[C66xx_1] xdc.runtime.Error.raise: terminating execution
[C66xx_6] xdc.runtime.Error.raise: terminating execution
However, if I use CpIntc_postSysInt() to trigger the interrupt, I do not have these errors and my plugs will get called with no errors. I am using the following components.
C6678PDK: 1.0.0.14
Sysbios: 6.32.04.49
IPC: 1.23.01.26
XDC: 3.22.01.21
CCS: 5.0.3.00028
Dongning