Tool/software: Code Composer Studio
Hi,
I am running automated regression tests on a farm of CC1310/CC1350 launchpads. When a test case contains a self-reset (either through watchdog or explicit call to SysCtrlSystemReset(), all launchpads hang in boot. The reason is that the TCK line is toggled multiple times AFTER an explicit pin reset at the end of the flash procedure. 8 pulses on TCK enable the JTAG interface and if the bootcode finds the JTAG interface enabled, it halts, waiting for the debugger to proceed. There is no way to disable that on the CC13x0/CC26x0 (R1).
See below image:
- End of flash procedure
- Explicit reset (Uniflash 4.2.2 introduced new CLI option: --post-flash-device-cmd PinReset)
- TCK toggles several times
The following image shows in more detail what happens on the TCK pin at (3)
Questions:
- Why is TCK toggled after reset? All JTAG actions should have finished by that time.
- Could this be a bug in the XDS110 firmware on the launchpads? The firmware version is 2.3.0.11. I checked several hardware revisions of CC1310 and CC1350 launchpads. They all show the same. I found only one single CC1310 launchpad rev. 1.2, where TCK stays low after programming. I have no idea why it behaves differently.
- Is there a work-around, maybe by modifying the GEL file? I had a look at cc26x0_xds.gel and found the function below. I tried to introduce an additional delay before GEL_AdcancedReset(), but that didn't have the desired effect.
GEL_CLI_PinReset() { GEL_TextOut("Executing Pin Reset...\n",""); GEL_Disconnect(); GEL_EvalOnTarget("CS_DAP_0", "GEL_Disconnect()"); GEL_EvalOnTarget("CS_DAP_0", "GEL_EvalOnTarget(\"IcePick_C\", \"GEL_Disconnect()\")"); GEL_AdvancedReset("Board Reset (free run)"); GEL_TextOut("Pin Reset Complete.\n",""); }
The same or a similar issue was reported
- by Michael Moonhere without resolution
- by Mads Westergreen here without resolution
- by Niranjan Hegde here. The suggested solution was, to replace XDS110 drivers with those from the latest Emupack. I tried this, but I don't achieve the same result as shown in this trace. The timing is not different from what I have posted above and what was shown in this trace. The thread mentions the command line tool xds110reset which also performs a board reset.
- by Sumair Qureshi here without resolution (XDS100, though).
Thanks for your ideas and help.
[EDIT] xds110reset seems to be a successful work-around for XDS110 debuggers. When using Uniflash, it can be found in <INSTALL_DIR>/simplelink/gen2/bin/.