FreeRtos – xQueueSendToFrontFromISR – assertion failure

I dag havde jeg er problem med at sende data til en FreeRtos queue fra et interrupt kald. Problemet var, at når jeg kaldte xQueueSendToFrontFromISR crash’ede systemet med en assertion.

Det viste sig at FreeRtos ikke tillader at have en interrupt med en højere prioritet end configMAX_SYSCALL_INTERRUPT_PRIORITY, så problemet blev løst ved at sætte interrupt prioriteten.

Det gøres ved, at kalde HAL_NVIC_SetPriority som vist nedenfor.

HAL_NVIC_SetPriority(SPI_MASTER_A_DMA_Rx_Stream_IRQn, 10, 0);

HAL_NVIC_SetPriority(SPI_MASTER_A_DMA_Tx_Stream_IRQn, 10, 0);

 

/Flemming Jahn

 

Leave a Reply

Your email address will not be published. Required fields are marked *