Hi,
I'm working with TI-RTOS on the AM572x and I'm trying to debug my application, which includes a clock instance posting messages to a mailbox which are read by a task. I've put breakpoints in my code, but when I unpause execution after hitting a breakpoint, the clock Swi executes many times in a row, filling up the mailbox before the task is able to read from the mailbox. This doesn't happen during normal execution. To debug the situation, I increased the mailbox message limit from 15 to 100 and increased the clock period from 50 ms to 500 ms. What I'm seeing in the ROV is that the clock Swi fills up more message slots in the mailbox the longer I leave the debugger paused for. This suggests that the clock has some way of recognizing the real elapsed time during the pause and "catches up" on a backlog of clock ticks. Is this the case? Is there a way to avoid this behavior?
I'm using SYS/BIOS libraries from bios_6_76_03_01 in the TI-RTOS processor SDK. I'm debugging with CCS 9.3.0.00012 and using the TI XDS2xx USB Debug probe.
Here's a reduced timing diagram of the relevant portion of my application:
Idle Task Swi_Clock
| | |
| O Mailbox_pend() |
O<---O |
O | |
O-----|----------------------------->O Mailbox_post() -
| O process msg <---------O |
| O Mailbox_pend() | | 50 ms
O<---O | |
O | | |
O----O---------------------------->O Mailbox_post() -
| O process msg <----------O
| O Mailbox_pend() |
O<--O |
... ... ...
Thanks