This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

OS_ERROR_TIMER_OVF error

I 'm got started coding the RTOS program by using RTX. And I encountered The error "OS_ERROR_TIMER_OVF" . According to the following program,It is occurred "due to User Timer Callback Queue overflow detected". So, I changed the OS_TIMERCBQS value from 4 to 25. But the error is not disappeared.

void os_error (uint32_t error_code) {
/* HERE: include optional code to be executed on runtime error. */
switch (error_code) {
case OS_ERROR_STACK_OVF: /* Stack overflow detected for the currently running task. */ /* Thread can be identified by calling svcThreadGetId(). */

tid_overstack = svcThreadGetId(); break;
case OS_ERROR_FIFO_OVF: /* ISR FIFO Queue buffer overflow detected. */ break;
case OS_ERROR_MBX_OVF: /* Mailbox overflow detected. */ break;
case OS_ERROR_TIMER_OVF: /* User Timer Callback Queue overflow detected. */ break;
default: break;
} for (;;);
} How should I do to resolve the error? If you know the solution ,Please let me know.

Parents
  • Robert,

    Thank you telling where to find the queue. I have already configured my timers as one-shot based on your advice from the original poster. I have a total of 7 timers but only one runs constantly and when its callback is entered the first thing I do is stop that timer and the last thing I do is re-start the timer, if, of course, I need to.

    When I watch 'osMessageQId_osTimerMessageQ' address in a Memory window i can see a register that look to count up to the 'Timer Callback Queue size' (set at 8). Are the following values the callback addresses? I am having trouble deciphering what the data bytes at the 'osMessageQId_osTimerMessageQ' address all mean.

    I also am using Segger emWin in my project and have now discovered it is all creating an osTimer to measure systems ticks. This 'GUI_Timer' is periodic and the source code files are locked so i can not edit them.

    Do you have any thoughts?

    Thanks,
    Tim

Reply
  • Robert,

    Thank you telling where to find the queue. I have already configured my timers as one-shot based on your advice from the original poster. I have a total of 7 timers but only one runs constantly and when its callback is entered the first thing I do is stop that timer and the last thing I do is re-start the timer, if, of course, I need to.

    When I watch 'osMessageQId_osTimerMessageQ' address in a Memory window i can see a register that look to count up to the 'Timer Callback Queue size' (set at 8). Are the following values the callback addresses? I am having trouble deciphering what the data bytes at the 'osMessageQId_osTimerMessageQ' address all mean.

    I also am using Segger emWin in my project and have now discovered it is all creating an osTimer to measure systems ticks. This 'GUI_Timer' is periodic and the source code files are locked so i can not edit them.

    Do you have any thoughts?

    Thanks,
    Tim

Children
No data