clavrg wrote on Monday, January 24, 2011:
I call xQueueSendFromISR twice posting to two different queues. But only one task waiting on the queue gets awaken.
__attribute__((__naked__)) static void NAME(void) {
portENTER_SWITCHING_ISR(); \
portENTER_CRITICAL();
bool taskAwaken = FALSE;
taskAwaken = xQueueSendFromISR(_queue_1, &key, taskAwaken);
taskAwaken = xQueueSendFromISR(_queue_2, &key, taskAwaken);
portEXIT_CRITICAL();
return taskAwaken;
portEXIT_SWITCHING_ISR();
}
if I only post to one of two queues - the corresponding task is awaken as expected.
What am I doing wrong?
I use preemptive scheduling. Port: Atmel UC3A3256