cancel
Showing results for 
Search instead for 
Did you mean: 

STM32H745 call event interrupt in second core

Frak.1
Associate II

Hi,

I'm trying to create multicore communication. I want to call interrupt in the second core. Firstly I thought that I can somehow make hardware semaphore release interrupt in the second core. But then I found something better in the CubeIDE:0693W000005CoNTQA0.pngIt looks like there is some dedicated interrupt. After the code generating I got the interrupt handler. But my question is: How can I send this event from the second core to core where I have generate the interrupt handler? Is there some bit that has to be set? Unfortunately my solution does not work. There are my steps to get interrupt in CM7 called from CM4:

CM4 :

  • runs with RTOS and I set bit in NVIC in the task with 2s delay:

HAL_NVIC_SetPendingIRQ(CM7_SEV_IRQn);

CM7:

  • I enable in Cube: CM4 send event interrupt to CM7 as presented in screenshot.
  • Next I enable IRQ and set priority:

 HAL_NVIC_SetPriority(CM4_SEV_IRQn, 0x0F, 0);

 HAL_NVIC_EnableIRQ(CM4_SEV_IRQn);

  • In the generated code for interrupt I toggle LED and clear interrupt flag:

void CM4_SEV_IRQHandler(void)

{

   HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin);

   HAL_NVIC_ClearPendingIRQ(CM4_SEV_IRQn);

}

Please correct me if I made some mistake. I can't find any practical example.

Regards,

1 REPLY 1
EOzde.1
Associate III

Hi,

Have you solved the issue? I have a similar problem with my code. I saw from the forum that asm("sev"); is sending event signals to all other cores in the system. Maybe it can help you.

Best Regards.