Interrupt routing unclear

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

Interrupt routing unclear

1,816 次查看
abemat
Contributor III

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 

标记 (4)
0 项奖励
回复
7 回复数

1,768 次查看
davidtosenovjan
NXP TechSupport
NXP TechSupport

Hi, could you clarify used environment? Thanks

0 项奖励
回复

1,732 次查看
abemat
Contributor III

Does that answer your question @davidtosenovjan 

0 项奖励
回复

1,717 次查看
davidtosenovjan
NXP TechSupport
NXP TechSupport

I have agreed with the S32DS expert to answer this question, but we currently have public holidays, so please wait until next week. Thank you for understanding

0 项奖励
回复

1,384 次查看
winsmen
Contributor II

Hi! Any update on this issue? @davidtosenovjan 

0 项奖励
回复

1,762 次查看
abemat
Contributor III

Hi David, 

We use the S32DS with a Segger J-link. I've debugged it by placing a breakpoint in the interrupt handler and checking from which core it paused in S32DS. We can already use the debugger to step through code on core0 and core1, so we know that it recognizes the cores separately.

0 项奖励
回复

1,675 次查看
jiri_kral
NXP Employee
NXP Employee

Hi, 

I'm not much familiar with the RTD and S32K3xx - but it looks, that there is not properly setup the platform package - if you like to handle some IRQ only by core 1, you need to uncheck core 0 (image is only for reference, the project is only single core - in your case the Core 1 column should be available for editing): 

jiri_kral_0-1657634124077.png

Jiri

0 项奖励
回复

1,374 次查看
winsmen
Contributor II

@jiri_kral I did uncheck core0 and set only core1 as the target of the interrupts I would like to be serviced only on core1, but with this configuration the ISRs never get called. However, I do see the flags from the peripherals which are meant to trigger the ISRs being set.

0 项奖励
回复