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.

TM4C1294KCPDT: Debugging daisy chained dual TM4C1294 - Emulation Pack Bug?

Part Number: TM4C1294KCPDT
Other Parts Discussed in Thread: EK-TM4C1294XL

Recently I posted this thread in Other MCU forum - but activity there is finished now, and I need to resolve the issue ASAP.

The problem with dual daisy chained TM4C1294 MCU:

Second core (CPU 1) is failing to set any breakpoints during debug with error messages:

CORTEX_M4_0: GEL Output: 
Memory Map Initialization Complete
CORTEX_M4_1: GEL Output: 
Memory Map Initialization Complete
CORTEX_M4_1: Trouble Setting Breakpoint with the Action "Terminate Program Execution" at 0x244: (Error -1066 @ 0x244) Unable to set/clear requested breakpoint. Verify that the breakpoint address is in valid memory. (Emulation package 9.3.0.00042) 
CORTEX_M4_1: Trouble Setting Breakpoint with the Action "Finish Auto Run" at 0x248: (Error -1066 @ 0x248) Unable to set/clear requested breakpoint. Verify that the breakpoint address is in valid memory. (Emulation package 9.3.0.00042) 
CORTEX_M4_1: Trouble Removing Breakpoint with the Action "Finish Auto Run" at 0x248: (Error -2044 @ 0x248) Internal error: Requested breakpoint does not exist. Restart the application. If error persists, please report the error. (Emulation package 9.3.0.00042) 

Anything else works: code is loaded and run correctly, I can pause it and see registers and variables and program user registers in both cores. But any functionality based on breakpoints (i.e. step over, CIO etc.) does not work on second core.

Target configuration is simple and straight:

Problem exist if any code loaded, i.e. simpe main() with only "return 0;" line.

Issue is reproduced in CCS v6 to CCS v10.3, XDS100v2, XDS100v3 and XDS200 debug probes.

Searching for exact error message I found 2 very similar topics in e2e forums: topic 1 and topic 2, unfortunately without any solution suggested.

Test case can be set up with dual TM4C1294XL launchpads with R40 jumper installed. Conect GND, TMS, TCK, RESET and Vtarget of XDS to both boards, TDI of XDS to TDI of first board, TDO of first board to TDI of second, TDO of second to TDO of XDS.

Please help! Thank you!

  • Hi,

      I will forward your question to our CCS experts. In the meantime, please upload your target configuration file again. It is not viewable. 

  • <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <configurations XML_version="1.2" id="configurations_0">
    <configuration XML_version="1.2" id="Texas Instruments XDS100v2 USB Debug Probe_0">
            <instance XML_version="1.2" desc="Texas Instruments XDS100v2 USB Debug Probe_0" href="connections/TIXDS100v2_Connection.xml" id="Texas Instruments XDS100v2 USB Debug Probe_0" xml="TIXDS100v2_Connection.xml" xmlpath="connections"/>
            <connection XML_version="1.2" id="Texas Instruments XDS100v2 USB Debug Probe_0">
                <instance XML_version="1.2" href="drivers/tixds100v2cs_dap.xml" id="drivers" xml="tixds100v2cs_dap.xml" xmlpath="drivers"/>
                <instance XML_version="1.2" href="drivers/tixds100v2cortexM.xml" id="drivers" xml="tixds100v2cortexM.xml" xmlpath="drivers"/>
                <property Type="choicelist" Value="0" id="The JTAG TCLK Frequency (MHz)"/>
                <platform XML_version="1.2" id="platform_0">
    	            <instance XML_version="1.2" desc="Tiva TM4C1294KCPDT_0" href="devices/tm4c1294kcpdt.xml" id="Tiva TM4C1294KCPDT_0" xml="tm4c1294kcpdt.xml" xmlpath="devices"/>
                    <instance XML_version="1.2" desc="Tiva TM4C1294KCPDT_1" href="devices/tm4c1294kcpdt.xml" id="Tiva TM4C1294KCPDT_1" xml="tm4c1294kcpdt.xml" xmlpath="devices"/>
                    <device HW_revision="1" XML_version="1.2" description="" id="Tiva TM4C1294KCPDT_1" partnum="TM4C1294KCPDT" simulation="no">
                        <router HW_revision="1.0" XML_version="1.2" desc="CS_DAP_1" description="CS_DAP Router" id="CS_DAP_0" isa="CS_DAP">
                            <subpath desc="subpath_1" id="subpath_0">
                                <cpu HW_revision="1.0" XML_version="1.2" desc="CORTEX_M4_1" description="Cortex M4 CPU" deviceSim="false" id="CORTEX_M4_0" isa="CORTEX_M4">
                                    <property Type="numericfield" Value="0x02000000" id="Access Port Designator"/>
                                </cpu>
                            </subpath>
                        </router>
                    </device>
                </platform>
            </connection>
        </configuration>
    </configurations>
    

  • HI Oleg

    Test case can be set up with dual TM4C1294XL launchpads with R40 jumper installed. Conect GND, TMS, TCK, RESET and Vtarget of XDS to both boards, TDI of XDS to TDI of first board, TDO of first board to TDI of second, TDO of second to TDO of XDS.

    Thanks for this. I also got instructions on how to daisy chain the launchpads from the device experts. As mentioned in our private e2e discussion, i'll need some additional equipment. I'll keep you posted.

    Thanks

    ki

  • Hi Oleg,

    Thank you for your patience. I finally was able to set up the required environment and successfully daisy-chain two EK-TM4C1294XL LaunchPads. I can reproduce the issue. The issue is that hardware breakpoints are not available for the second CPU on the chain. Only software breakpoints are available. Hence if your code is in flash, you will not be able to set breakpoints for the code. That explains the various "setting breakpoint" errors you see when loading/flashing the program. After the program is flashed, the debugger will try to set breakpoints at the exit point of your code and also set a breakpoint at main so that it can auto-run to it. Those will all fail when the code is in flash. Those options can be disabled in the debugger option. However, as you already know, you will not be able to set any breakpoints in your code and single stepping will not work either (since that also uses breakpoints).

    This is clearly some bug with the debugger. It doesn't think hardware breakpoints (or watchpoints, event counters, etc) are available on the second CPU for some reason. I filed a bug for this. Tracking ID: https://sir.ext.ti.com/jira/browse/EXT_EP-10378

    Again, thank you for your patience and notifying us of this issue.

    ki

  • Issue is reproduced in CCS v6 to CCS v10.3, XDS100v2, XDS100v3 and XDS200 debug probes.

    For your older CCS versions, was it once working but broke when you updated the EMU pack version?

    I have no issues using CCS 7.4.0 and CCS 8.3.1. But I do have an issue with CCS 9.3.0. It seems likely that this issue was introduced in a more (relatively) recent EMU pack version

    My CCS 8.3.1 has EMU Pack version 8.4.0.00006 (works)

    My CCS 9.3.0 has EMU Pack version 9.1.0.00001 (broken) 

  • Actually, I did not try this in older versions of CCS, I just copied info from another topic.

    Is it possible through using older emupack with modern ccs version?

  • Update: workaround causes CCSv9.2 to hung during debug session initialization.

  • Is it possible through using older emupack with modern ccs version?

    I wouldn't recommend installing an emu pack version earlier than what that version of CCS originally ships with. There are likely dependencies between emu pack and debugger versions. It's usually fine to upgrade but not go backwards.

  • Update: workaround causes CCSv9.2 to hung during debug session initialization.

    I can't reproduce that with my CCS 9.3.0 installation. Perhaps try cleaning your workspace or some of the target cache files.