system
(system)
September 1, 2015, 11:21am
1
atiflz wrote on Tuesday, September 01, 2015 :
I cannot use any kind of inter process communication from ISR. All of these functions cause a lock up on my setup:
vTaskNotifyGiveFromISR
xQueueSendFromISR
xSemaphoreGiveFromISR
What can I do to have any kind of synchronization my tasks with interrupts except polling global variables?
Atilla Filiz
richard_damon wrote on Tuesday, September 01, 2015 :
Those functions are what you are supposed to be using. When things lock up, what is it locked up in, could it be a configASSERT? Perhaps your ISR is set to use too high of a priority.
system
(system)
September 2, 2015, 8:35am
3
atiflz wrote on Wednesday, September 02, 2015 :
Indeed it was the interrupt priorities for GPIOs. The examples do not set any IRQ priorities, so I guess they stay at default 0.
I proppose calling
PIO_InitializeInterrupts(configMAX_SYSCALL_INTERRUPT_PRIORITY + 1)
or similar at the beginning of main().