xQueueSendFromISR
xQueueHDLC = xQueueCreate( 100, sizeof( u8 ) );
…
in IRQ :
xTaskWokenByPost = pdFALSE;
for(addr = recv_buf_addr; addr<(recv_buf_addr + 150);(addr+=1))
{
cIn = (*(u8 *)addr);
xTaskWokenByPost = xQueueSendFromISR( xQueueHDLC, &cIn, xTaskWokenByPost );
}
if we create a queue with 100 bytes and we send more than 100 bytes in the queue, how FreeRTOS is managing this?
Or we must manage it with a counter?
Thanks.
Chris.
xQueueSendFromISR
The character will be lost! If there is no room on the queue the ISR cannot block so the character has nowhere to go.