We would like to enable interrupts on our S32K322 dual core sample. We can trigger interrupts using the generated configuration, but the handler will always be handled by core 0. We would like it to be handled by core 1.
This is a relevant part of the generated configuration:
static const IntCtrl_Ip_IrqConfigType aIrqConfiguration1[] = {
...,
{SIUL_0_IRQn, (boolean)TRUE, 0U},
...,
};
const IntCtrl_Ip_CtrlConfigType IntCtrlConfig_0 = {
128U,
aIrqConfiguration1
};
/* List of configurations for routing interrupts */
static const IntCtrl_Ip_IrqRouteConfigType aIrqRouteConfig[] = {
...,
{SIUL_0_IRQn, 3U, undefined_handler},
...,
};
/* Configuration structure for interrupt routing */
const IntCtrl_Ip_GlobalRouteConfigType intRouteConfig = {
128U,
aIrqRouteConfig
};
And calling the interrupt init from core0:
nxp_status |= (StatusType) IntCtrl_Ip_Init(&IntCtrlConfig_0);
nxp_status |= (StatusType) IntCtrl_Ip_ConfigIrqRouting(&intRouteConfig);
IntCtrl_Ip_InstallHandler(SIUL_0_IRQn, Siul_0_IRQHandler, NULL_PTR);
IntCtrl_Ip_EnableIrq(SIUL_0_IRQn);
When changing the interrupt routing to only be mapped to core 1 (2U), we do not see an interrupt at all anymore. What is the problem here?
/* List of configurations for routing interrupts */
static const IntCtrl_Ip_IrqRouteConfigType aIrqRouteConfig[] = {
...,
{SIUL_0_IRQn, 2U, undefined_handler},
...,
};
@joohau