This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

realtime mode ease-of-use

I am using ccs 4.0.2.01003 on a C64XP on a 6486 via a blackhawk USB510 emulator.  I believe this applies to any full-gem on any board via any connector.

First, it is not obvious how to enable realtime mode.  Using the "Launch selected configuration" option from a target in "Target Configurations" there is no evidence that realtime mode exists.  In ccs 3.3 it is obvious because it is a checkbox in the debug menu.  This also applies when the target is launched from a project.

Once it is discovered that realtime mode is available via the "Target/Debug..." menu on the "Target" tab, there is no context help for this panel.  The below shows the target panel, the connection, and the lack of context help on the right.  It also shows the "realtime options" portion.

 

After stumbling on this panel, and due to the lack of context help, I checked all three realtime options (Halt the target before any debugger access, Enable silicon real-time mode, and enable polite realtime mode).  There are no startup gels or javascripts that affect the target in any way on connection.  In the configuration shown above (with just halt the target before any debugger access) it behaves like ccs v3.3 such that it stops wherever the PC happened to be and works as expected. Next, terminate the debug session, enable all three realtime options, launch the debug session, and attempt to connect.  At this point ccs appears to crash, where the title bar turns white, windows says "not responding", and the debug tab shows "Thread[main] (Connecting)".  If I wait it out (a couple minutes) it evenually starts responding intermittently, and the console shows numerous errors.  When it is in this "not responding" state windows doesn't let me do a capture (alt-printscreen).

C64XP_0: Trouble Halting Target CPU: Unable to find interruptible boundary.  Not able to complete request because it requires an interruptible boundary to halt.  Please check your application code for interruptibility.

All that I can do at this point is terminate the debug session or terminate ccs, depending on my patience.

In hindsight it is obvious why its trying the halt the CPU: because the first option "Halt the target before any debugger access".  However there are issues with ccs ease of use here:

Is this a bug? Should it be able to stop?  If I start with only the bottom two options (enable silicon real-tiem mode and enable polite realtime mode), then ccs IS able to stop (using the "pause" button).  However with all three options enabled it cannot stop.  It seems these two stops should be the same, and therefore the fact that it can't stop with all three options set is a bug.

If this isn't a bug, then "halt the target before any debugger access" and "enable silicon real-time mode" are mutually exclusive.  Thus, when "enable silicon real-time mode" is enabled, the "halt the target before any debugger access" should be grayed out, like how "enable polite real-time mode" is grayed out unless "enable silicon real-time mode" is enabled.

Finally, the context help needs to be provided for the debug panel in the above screencap.

For all of the above experiements the CPU was stuck in a trap which is below.  GIE bit in CSR is 0 since this is a trap.  This may explain the "Unable to find an interruptable boundary", but again, why was it able to stop using the pause button?  The screencap was taking with the bottom two realtime options checked, and the CPU stopped via the pause button.