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.

Debugging with Memory Browser window open shows unexpected output

Hello,

I have loaded and am debugging a UART application on AM335x EVM using XDS510USB JTAG. I observe one output when the Memory Browser window is open and a different output when the window is closed. A code snippet of the relevant code is given below.

static void UARTIsr(void)

{

    static unsigned int txStrLength = sizeof(txArray);

    static unsigned int count = 0;

    unsigned char rxByte = 'A';

    unsigned int intId = 0;

 

    /* Checking ths source of UART interrupt. */

    intId = UARTIntIdentityGet(SOC_UART_0_REGS);

 

    switch(intId)

    {

        case UART_INTID_TX_THRES_REACH:

                ------------------------------

                ------------------------------

        break;

 

        case UART_INTID_RX_THRES_REACH:

 

             /* Reads data from Receive Holding Register (RHR).  */

             rxByte = (unsigned char) HWREG(SOC_UART_0_REGS + UART_RHR);

 

             /* Transmit the received byte. */

             HWREG(SOC_UART_0_REGS + UART_THR) = rxByte;

 

        break;

 

        default:

        break;

     }

}

To brief about this code, this is a UART ISR. When the RX condition in UART is active, that is, when UART receives at least one byte of data, the UART_INTID_RX_THRESH_REACH branch is taken.

I applied a breakpoint in the line colored in blue. As soon as the breakpoint would be hit, I used to give a run. On a serial console application (Tera Term) running on the PC (host machine), I entered the characters a to z. I observed two different outputs:

  • When the Memory Browser window was open, I observed that the alternate alphabets only got displayed on the Tera Term. That is, the output was 'bdfhjlnprtvxz'.
  • When the Memory Browser window was closed, I observed the complete expected output, that is, a to z.

I require your help to explain this phenomenon. One of our customers observed something like this. I suspect that Data Acquisition process running in the background to update the Memory Browser window is consuming time because of which CCS is not able to manage the debugging. However I want your expert advice. Please revert if you need any more information.

A quick reply is highly appreciated. Thanks in advance for your effort.

 

Regards.

Gurudutt.

  • Gurudutt,

    I don't have an AM335x EVM, but I was playing around with BeagleBone and the UART example code of Starterware 2.00.00.07 and could not observe this behaviour at all.

    Although the Beaglebone uses a different emulator (XDS100v2 instead of XDS510USB), it runs a lot slower and uses different device drivers, therefore these may be influencing the outcome here. These may be possible reasons, therefore I will try to get my other Beaglebone board that accepts an external emulator tomorrow and give it a spin with my XDS510USB.

    Apart from that, I really don't know exactly what may be happening in this case. The emulator only updates the views while stopped at a breakpoint.

    I'll let you know what I find.

    Regards,

    Rafael

  • Gurudutt,

    Unfortunately I couldn't verify this issue in CCSv5.3.0 or 5.4.0 on my BeagleBone with an external XDS510USB emulator and running the Starterware uartEcho example code. Please check the attached screen.

    Although at first glance it seems something related to the CCS and emulation combination, I suspect the issue may be somehow related to your system (a slower PC, the Teraterm software, the hardware board, the code). If you would like to explore this further, I suggest borrowing a spare emulator/board to rule out any possible hardware issues, use the Starterware code to rule out any code issues, use a different terminal program, or even clean out the workspace and the Debug configurations in CCS (rather unlikely to fix this, but it is worth trying) - for that last one, check the Troubleshooting CCS page at:

    http://processors.wiki.ti.com/index.php/Troubleshooting_CCS

    Regards,

    Rafael