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/TM4C129ENCPDT: Rescue LaunchPad from bad firmware?

Part Number: TM4C129ENCPDT
Other Parts Discussed in Thread: UNIFLASH

Tool/software: Code Composer Studio

I cannot load new firmware onto my LaunchPad using CCS, and I'm convinced that the problem is the firmware that's already loaded on it.

Is there any procedure to wipe the Flash so that I can get past this block?

I started with the watchdog example firmware, and made a few modifications. Things were running fine with Watchdog0. I decided to try out Watchdog1 with the RTC as a clock source for longer watchdog timeouts. I may have set the timeout too short, because now things aren't working. The biggest problem is that I cannot load new firmware on this LaunchPad because of communication errors.

I've tried holding the RESET button on the LaunchPad. I've also tried holding the SW1 button since the watchdog example code is using that to trigger the watchdog timeout. Neither of those help.

I looked for an "Erase Flash" option in CCS, thinking that I might have more success erasing the Flash of the existing firmware before continuing on. I haven't been able to find a function for that.

Does anyone have a recommendation for how to load new firmware on a LaunchPad when the existing firmware is causing issues with the JTAG communications?

  • Yes, preform the "Unlock" procedure and it will erase the entire flash. It will also erase the MAC ADDR and anything stored in User Register 0 or 1. I prefer to use LM Flash Programmer to do this. (It is also supported by UniFlash. It is supposedly supported by CCSv8, but I have had issues using CCS to do the unlock.)

    See the instructions starting on page 21 of this document:

    https://www.ti.com/lit/an/spma075/spma075.pdf#page=21

  • Thanks for the quick reply!

    One coworker referred me to UniFlash, and that seemed to get further than CCS, but still locked up.

    I'm now grabbing LM Flash Programmer and will follow the instructions that you provided.

    Brian

  • Hmm, LM Flash Programmer doesn't seem to support macOS.

    Meanwhile, UniFlash has an Unlock feature with the same instructions to hold the RESET button during power up, but clicking the button reports "Error! Failed to load flash dll: dlopen(/Applications/ti/uniflash_5.1.0/deskdb/content/TICloudAgent/osx/ccs_base/DebugServer/bin/FlashFTDStellaris.dylib, 1): image not found"

    Sure, enough, that file does not exist. There is a file in that directory named FlashDLLDB.xml, but that doesn't help.

    This may not be the forum to report such errors, but that where I'm at now. I'll look for a Windows machine...

    Brian

  • Brian,

    I will pull in the CCS team that supports UniFlash. They should be able to help with the missing .dll. I never tried it on a mac.

  • Brian,

    Please apologize; only today I was able to retrieve my macOS laptop. 

    I can reproduce the same issue as you - the file I have in my uniflash setup is libFlashStellaris.dylib.

    Looking at the internal bug reports, it seems there are no plans to support this feature in both Linux and OSX.

    I am not sure what Debug Probe you are using, but if you have a XDS110, you can unlock the port via command line using the dbgjtag utility. 

    This utility is located at /Applications/ti/uniflash_5.1.0/deskdb/content/TICloudAgent/osx/ccs_base/common/uscif

    ./dbgjtag -f @XDS110 -Y unlock,mode=tiva

    Hope this helps,

    Rafael

  • Thank you. We have the XDS200 in addition to the Stellaris - would the same or similar command work for XDS200?

    I'll give it a try later today, and look for some documentation...

  • Brian,

    Brian Willoughby18 said:
    would the same or similar command work for XDS200?

    Probably, but unfortunately I don't have my boards and Debug Probes with me at the moment (my office is closed for damage repairs due to inclement weather). 

    Let me know if this works well for you. 

    Regards,

    Rafael

  • Brian,

    I just got a confirmation from the developer:

      -Y unlock,mode=string

         Do unlock procedure on target device. The supported modes are

         mode=msp432e4. (XDS100, XDS110, and XDS200).

         mode=tiva. (XDS100, XDS110, and XDS200).

    Also, I filed the bug report UNIFLASH-1316 to remove this non-working option from the GUI. You can check its status from the link SDOWP in my signature below. 

    Regards,

    Rafael

  • I had success with the XDS200 using the following command:

    ./dbgjtag -f @XDS110 -Y unlock,mode=tiva