TLDR:
CORTEX_M4_0: GEL Output:
Memory Map Initialization Complete
CORTEX_M4_0: Can't Run Target CPU: Debug Port error occurred.
Summary:
I'm trying to debug my project, which has four tasks running. I'm using semaphores to keep one task locked until another unlocks it. Immediately after unlocking the task, it pends on another semaphore, waiting on a response from the newly unlocked task. The unlocked task interfaces with an external device and goes off and does its thing. When it's done, it posts the semaphore which the first task is waiting on. The other two tasks are off doing there own thing quite happily, one of which runs a blinking status LED.
The first task is my console. It talks to a GUI on the PC, the tasks that gets unlocked talks to a radio. These two tasks are using System_printf() and System_flush() to print debug messages inside of CCS6.
After it runs for a minute or so, the above message prints out dropping my debug connection. The LED task is still blinking away, so the RTOS is still running. But my console task is evidently hung, because my GUI which it talks to reports the comms have quit.
What kind of software bug can drop the JTAG connection in such a horrific way, but not ultimately kill the RTOS (LED is still blinking away)?
-Mark Taylor