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.

28335 in "non-debuggable context", what does this mean?



I am using CCS 4.2.1 and the Blackhawk USB100v2 JTAG probe to debug a custom design using the SM320F28335 processor; this is a medical application. I am executing a small part of the code from internal SRAM, but most of the code is executing from an external SRAM hooked up to zone 6 of the XINTF for easier debugging using multiple breakpoints.

I left the system running in debug mode overnight. When I left, it was running without any problems, when I came in this morning the system appeared to be dead - not responding to the button inputs, not updating the LCD display or trying to access the smart battery over the I2C bus. The processor is in a weird state, using the debugger I can read the PC (= 0x00A47F) and the SP (=0x041C) registers, but trying to read any of the other CPU registers gives the following error:

C28xx: Trouble Reading Register ACC: Error 0x00000004/-1142 Error during: Register,  Processor blocked debug accesses. An operation was attempted while the CPU was in a non-debuggable context. To continue to honor the debug context, press Cancel. To force debug access, press Rude Retry. 

The disassembly window can access memory, but it says all of memory is set to the value 0x0BAD; the instruction is DEC @SP; but I suspect that this value really has another meaning and is due to the processor being in an error state of some kind. The PC value is the end of the CIO write routine, and the SP value is valid for the system, but as I said all of memory returns the value 0x0BAD so there is no valid stack information available. The EMU0 and EMU1 signals are both low, not sure what they should be for normal operation.

Does anyone know what this error state is for the 28335 and how it gets entered? Did I execute an invalid instruction or maybe a fetch from the external SRAM failed somehow, even though the PC is set to internal SRAM?

  • No help available at all for explaining what mode the processor and/or debugger is entering?

  • Chris McDermott said:
    C28xx: Trouble Reading Register ACC: Error 0x00000004/-1142 Error during: Register,  Processor blocked debug accesses. An operation was attempted while the CPU was in a non-debuggable context. To continue to honor the debug context, press Cancel. To force debug access, press Rude Retry. 

    if I recall 0xBAD shows up if an access times out - so its possible the device is blocking the realtime accesses which aligns with the error message - if you use rude retry then the debugger will force the access instead of waiting until the processor unblocks it.   The fact that it stopped responding to comms (I2C) makes me think it went off into the weeds somehow - stack overflow perhaps?