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.

CCS/EK-TM4C129EXL: Hardware watchpoint not triggering

Part Number: EK-TM4C129EXL

Tool/software: Code Composer Studio

Hello,

i am working with CCS (7.1.0.00015) and a EK-TM4C129EXL launchpad. I am debugging the provided blinky example and i am trying to set a Hardware watchpoint at GPIO_PORTN_GPIO_DATA (0x400643FC), exactly as it is explained in the CCS Fundamentals Workshop for TM4C1294, slide 9

Unfortunately the watchpoint never triggers. A watchpoint on a local variable works (SRAM) but not on the GPIO. Breakpoint works. Register view and memory view at 0x400643FC are showing correct changing values.

Any suggestions? Thanks in advance.

  • Gregor,

    I can reproduce this. There does appear to be some problem with hardware watchpoints. I will do a few more tests and then file a bug report to have this investigated. I will update this forum thread with the bug tracking number after I have filed the issue.

  • The bug tracking # for this issue is DBGTRC-3392. You may track its status using the SDOWP link in my signature.
  • Dear AartiG,

    thank you for your help and the filing of the bug.

    Unfortunately i cannot login to SDOWP to track the bug:

    "ClearQuest login of user: This login is forbidden: CRMMD1881E Invalid Credentials: Either the login name or the password is incorrect."

    Kind regards,

    Greg

  • Gregor Burmberger said:

    Unfortunately i cannot login to SDOWP to track the bug:

    "ClearQuest login of user: This login is forbidden: CRMMD1881E Invalid Credentials: Either the login name or the password is incorrect."



    I'm surprised as the link should provide automatic "readonly" login credentials.

    Can you try the "Bug Tracking" link that is available on the right-side of the main CCS forum page?

  • Dear AartiG,

    i can sucessfully login to the "Bug Tracking" link that is available on the right-side of the main forum page.

    If i search for the ID "DBGTRC-3392" nothing is found. :(

    Just to test the search engine: a search for e.g. DBGTRC-3183 lists an incident report...

    Regards,

    Greg

  • Gregor Burmberger said:
    If i search for the ID "DBGTRC-3392" nothing is found. :(

    Sorry about the confusion. The bug had not been marked for publish earlier. That has been fixed so it should be visible now.

  • Dear all,

    i did not hear anything about the bug until today so i checked the bugtracker entry and there was stated: Declined, Reject reason: Incorrect address was assigned to the watchpoint.

    Can anybody explain this to me? Thanks in advance.

    Regards, Greg

  • Gregor Burmberger said:
    Can anybody explain this to me?

    Looking at the EK-TM4C129EXL blinkly example from TivaWare_C_Series-2.1.3.156 shows the following functions used to toggle the LED:

            //
            // Turn on the LED.
            //
            GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, GPIO_PIN_0);
    
            //
            // Turn off the LED.
            //
            GPIOPinWrite(GPIO_PORTN_BASE, GPIO_PIN_0, 0x0);
    

    Single-stepping into the GPIOPinWrite() functions shows them writing to the bit-banded address 0x40064004 to change just the state of PORTN GPIO_PIN_0, where the bit-banded address 0x40064004 is different to the address 0x400643FC of the GPIO_PORTN_DATA register shown in the CCS Fundamentals Workshop for TM4C1294.

    I think at some point the blinkly example was changed to use the TivaWare GPIOPinWrite() functions, rather than the direct register writes to GPIO_PORTN_DATA_R register shown in the code in the CCS Fundamentals Workshop for TM4C1294. I think that is why DBGTRC-3392 was rejected as "Incorrect address was assigned to the watchpoint".

    Can you instead try and set the hardware watchpoint for a write to address 0x40064004, on the assumption that you are using the version of the blinky example which uses GPIOPinWrite calls.

    I tested this, and with the EK-TM4C129EXL blinky example from TivaWare_C_Series-2.1.3.156 the hardware watchpoint was hit on the calls to GPIOPinWrite() in CCS 7.1 or CCS 7.2.

    Edit: Correction to say setting a watchpoint on 0x40064004 does work.

  • Greg,

    Chester is absolutely correct in his analysis and that is the reason for the rejection of the bug. 

    The CCS Fundamentals Workshop is using an older version of the TivaWare example with slightly different code. That is the reason why setting the watchpoint by following the steps in the workshop no longer works. For the current blinky example, you can set the watchpoint at address 0x40064004, as Chester pointed out, and that should work as expected.