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.

LP-MSPM0L1306: Send to Brike Mode

Part Number: LP-MSPM0L1306
Other Parts Discussed in Thread: UNIFLASH, MSPM0L1306

Tool/software:

I wanted to check out alternative firmware download. For that I switched on "generate hex file" in CCS Theia 1.4.0 and build the project with Ticlang.

After that I downloaded the hex file with Uniflash. Uniflash confirmend the correct download. Unfortunately after reboot  something went teribble wrong.

First the downloaded software doesn't work and more worse the SWD interface neither.  Therfore I couldn't use the "reset to factory default" funtion in Uniflash anymore.

First question: Is there any way to restore the SWD interface without changing the MSPM0L1306 ?

Second question: Is there a documentation for a build configuration "production release" in CCS Theia with hex file generation? Currently there is only a debug build configuration available.

Thanks in advance

Holger

  • Hi Holger,

    First question: Is there any way to restore the SWD interface without changing the MSPM0L1306 ?

    Maybe. Have you made any changes in the NONMAIN section of memory, such as modify the security level? 

    Second question: Is there a documentation for a build configuration "production release" in CCS Theia with hex file generation? Currently there is only a debug build configuration available.

    As far as I know there is no documentation for this, but there is nothing special or magic about the "debug configuration".  You can simply add a new configuration and modify the project properties to support a production build.  Most customers don't use both, but if you need to specify additional steps or use different project properties, such as compiler optimization = 3 for production and 0 for debug.

    Here is example.  Right-click on the project name, then select  "build configurations" from the drop-down menu.  Provide a new name and (optional) description.  I suggest you copy the settings from the Debug configuration, then modify the project build properties, such as enabling .hex output.

    Does this make sense to you?

  • Hi Dennis

    thanks for your advice. No I don't change the NONMAIN section, at least not internionally. I think that the hex file output was somehow corrupt. Maybe  I flashed a wrong reset vector.

    Is it right, that after reset the first boot loader in the MSP0L1306 ROM needs to be started for propper working SWD?

    For production release, I would like to get rid of debug symbols. Maybe you are so kind to give me a hint what to change?

    Compiler Flags:

    -march=thumbv6m -mcpu=cortex-m0plus -mfloat-abi=soft -mlittle-endian -mthumb -O2 -I"C:/Users/xxxx/workspace_ccstheia/SO442_MSPM0L1306" -I"C:/Users/xxxx/workspace_ccstheia/SO442_MSPM0L1306/Debug" -I"C:/ti/mspm0_sdk_2_00_01_00/source/third_party/CMSIS/Core/Include" -I"C:/ti/mspm0_sdk_2_00_01_00/source" -gdwarf-3

  • There are a few recovery methods listed in the SDK User's guide (conveniently with the SDK). Here is the path on my installation -> C:\ti\mspm0_sdk_2_01_00_03\docs\english\known_issues_faq

    In the TRM, section 1.4.2.1, the different security modes are described.  If the BSL is still enabled, see 1.4.2.1.3, then you can send commands to the boot loader to perform mass erase and recover the NONMAIN.  In fact, the SDK contains a GUI that will use either the XDS110 on the LP or a standalone XDS110.  Since BSL supports the "Factory Reset" you can try to recover the device using BSL.  The user guide for doing this is -> https://www.ti.com/lit/an/slaae88b/slaae88b.pdf

    However, if BSL is corrupted and disabled, then there isn't much that can be done.

    Is this your custom PCB or launchpad having this issue?

    Regarding the compiler's flags, you shouldn't need to modify any of the flags.  In the line you show above, -gdwarf-3 is for optimization and the include option -I"C:/Users/xxxx/workspace_ccstheia/SO442_MSPM0L1306/Debug" is telling the compiler which build configuration to use.  There are no specific debug flags and symbols are not stored as part of the generated image.