How can I connect IPC Interrupt in Interrupt window on Creator?

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Anonymous
Not applicable

Hello,

When I use the IPC to communicate between processors, I think I need to use the IPC interrupt and I have to set the IRQ25 to 40 to NVIC for Cortex-M0+. But there is no any interrupt for IPC in Interrupt tab in Creator. How we can know the interrupt from IPC to Cortex-M0+?

Best regards,

0 Likes
1 Solution
MeenakshiR_71
Employee
Employee
100 likes received 50 likes received 25 likes received

Hi,

In order to route IPC interrupts, you will need to use the PDL APIs. An example (for CM0+) is provided below:

cy_stc_sysint_t                 ipc_intr_Config;

/* Configure CM0 interrupts */

ipc_intr_Config.intrSrc          = (IRQn_Type)##IPC_INTERRUPT_NUMBER##;

ipc_intr_Config.cm0pSrc          = (cy_en_intr_t)##CM0P_MUX_NUMBER##;

ipc_intr_Config.intrPriority     = ##INTR_PRIORITY##);;

(void)Cy_SysInt_Init(&ipc_intr_Config, ##YOUR_ISR_HANDLER##);

/* Enable the interrupts */

NVIC_EnableIRQ(ipc_intr_Config.intrSrc);

The IPC_INTERRUPT_NUMBER is the interrupt vector numbe and CM0P_MUX_NUMBER is the CM0+ Mux number you want to route the interrupt to.

Let me know if this helps,

Regards,

Meenakshi Sundaram R

View solution in original post

0 Likes
3 Replies
MeenakshiR_71
Employee
Employee
100 likes received 50 likes received 25 likes received

Hi,

In order to route IPC interrupts, you will need to use the PDL APIs. An example (for CM0+) is provided below:

cy_stc_sysint_t                 ipc_intr_Config;

/* Configure CM0 interrupts */

ipc_intr_Config.intrSrc          = (IRQn_Type)##IPC_INTERRUPT_NUMBER##;

ipc_intr_Config.cm0pSrc          = (cy_en_intr_t)##CM0P_MUX_NUMBER##;

ipc_intr_Config.intrPriority     = ##INTR_PRIORITY##);;

(void)Cy_SysInt_Init(&ipc_intr_Config, ##YOUR_ISR_HANDLER##);

/* Enable the interrupts */

NVIC_EnableIRQ(ipc_intr_Config.intrSrc);

The IPC_INTERRUPT_NUMBER is the interrupt vector numbe and CM0P_MUX_NUMBER is the CM0+ Mux number you want to route the interrupt to.

Let me know if this helps,

Regards,

Meenakshi Sundaram R

0 Likes
Anonymous
Not applicable

Hello

Thanks.

I checked it with source code in Creator.

By the way, the structure of cy_stc_sysint_t is different from the expression in PDL 3.0.1 (build 716).

Best regards,

0 Likes

I actually checked the structure in 3.0.1.716 PDL build and it seem to be fine. If you are not seeing the "cm0pSrc" element, then mostly you are checking the structure from CM4 code. Hence it may not be available in the auto-fill drop-down.

Let me know what is missing or different in the structure, so that I can provide a code that suits the structure.

Regards,

Meenakshi Sundaram R

0 Likes