RL-ARM: Possible Reasons for OS_ERR_FIFO_OVF Status
Information in this knowledgebase article applies to:
On rare occasions os_error() is being called with OS_ERR_FIFO_OVF. What can be the reason for this?
The OS_ERR_FIFO_OVF occurs when the FIFO queue for post-processing events sent via isr_xxx() functions becomes full. In this case, events will be lost. To inform the user about this critical situation, os_error() is called.
Interrupts can't access critical RTX resources. Because of that, such actions must be queued and later processed by the RTX. isr_xxx() functions will also trigger a RTX interrupt that runs when the current interrupt handler finishes.
This FIFO queue size is configurable in the RTX_Config. But selecting the maximum size will not always help, if the RTX does not get the chance to process the fifo queue. So possible reasons for the error are:
Check your application against the possible reasons mentioned above and avoid them. This should give RTX sufficient time to post-process the FIFO queue and the OS_ERR_FIFO_OVF error will not occur.
The following Discussion Forum threads may provide information related to this topic.
Last Reviewed: Friday, January 4, 2013
of your data.