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/MSP430FR2433: LPM 4.5 example code fails on MSP-EXP430FR2433 when debug probe attached

Part Number: MSP430FR2433
Other Parts Discussed in Thread: MSP430WARE, MSP-EXP430FR2433,

Tool/software: Code Composer Studio

The TI example msp430fr243x_lpm4_5_01.c does not seem to work when a debug probe is connected.
Although the document SLAA424 seems to say that you can use a debug probe to debug LMP4.5.

To reproduce, in CCS:
- choose checkbox "project>Properties>Debug>MSP43x Options>Enable Ultra Low Power debug"
- make changes to example as below
- choose "CCS Debug" icon to change GUI to the debugging perspective
- choose "Debug" icon to burn to target and start debugger
- choose menu item Run>Free Run
- push button S1 on the Launchpad
- expect LED1 to start blinking (but it does not.)

However, if you disconnect all jumpers from J101 except 3V3 and GND (isolate target from FET), and repower the board, the example works (pushing the button causes LED's to flash.)

Context:
Example from  msp430ware_3_80_04_05
Compiler CCS Desktop 8.1.0.00011
Dev kit LaunchPad MSP-EXP430FR2433
Platform Ubuntu 16.04

The example requires two changes:
1) the Launchpad has a button on P2.3 instead of P1.3
2) the Launchpad out of the box has the XTAL disconnected (excise XTAL related code from example.)

  • Hi Lloyd,

    Let me take a look and see what the issue might be.
  • Hi Lloyd,

    Sorry for the delay in responding. I have verified what you are seeing.
    I have contacted our tools team to see if they can shed some light on the debugger functionality that might be causing this issue.
  • Hi Lloyd,

    Our tools team has confirmed it is not possible to wake the MSP430FR2433 from LPM4.5 from an external pin when in "Free Run".

    Here is there comment:

    Debugging trough LPMx.5 is not really possible on MSP-EXP430FR2433. The device will never enter LPMx.5 when you do not do a free run. It will stay in LPM4. So you have to use FeeRun that’s correct.

    The free run is working and the device enter LPMx5 as expected. On an MSP430FR2433 you cannot wake the device up externally (pin). The debugger won’t detect this.(There is no polling possible). In this case the device will hang in an MSP bootcode trap. After a power cycle this trap is gone. Can you please verify this?
    If you wake the device up by resume (F8) the debugger will take care about connecting to the device and handling the bootcode trap correctly to finally restart the IDE debug session.

  • I am having trouble comprehending this.

    The tools team comment said that after choosing Free Run, “If you wake the device up by resume (F8) the debugger…”. I tried this myself and it does NOT work as stated: 1) the “Resume” icon is disabled (grey) and 2) pressing F8 key has no effect on the debugger.

    To be clear this is my test sequence:

    - choose "Debug" icon to burn the example program to target and start debugger
    - choose menu item Run>Free Run
    expect the IDE to show “(Running (No Power/Clock))” next to the name of the debug session in the upper left panel
    - hit key F8

    This confuses me because the target is already running (not suspended by the debugger, but in LPM4.5), so why would one need to “resume” it. Maybe the tool team meant Pause?

    Also, maybe I just don’t understand what “Free Run” means. My understanding is that it removes all breakpoints, lets the target execute, and disables debugger probe so that the debugger probe will not send/receive any signals on the SBW pins. Thus, the target should behave as if it was a freestanding unit. If that is a correct understanding, then why would the external switch not wake the target from LPM4.5?

    This makes a developer’s process hard using the Launchpad for a program that uses LPM4.5: every time you make a change to the code, you must add jumpers to J101 so that you can burn the program, then remove jumpers from J101 so that the program will behave (e.g. wake from the external switch) as if the debug probe was not attached.

    Finally, can you explain “MSP bootcode trap”. Is the source for the “bootcode” available? Where does the bootcode load in memory? I ask these questions because I might have a related problem where my system suffers a vacant memory address (VMA) NMI when it is powered up stand alone, but not when it is attached to the debugger.

  • Hi Lloyd,

    I have passed your questions along to our tools team.
  • Hi Lloyd,

    Super sorry for the delayed response. Our tools team is in Freising and sometimes they need a little push.

    Ok, first they were wrong about the resume (F8) and halt. You have to press halt to get back control over the device.

    Next, regarding the understanding of "free run", yes, your expectations are correct. They are asking if you have checked if pressing HALT in CCS wakes up the device?

    Last, your question about bootcode. The bootcode is part of the device and ROM code. We don't provide this as it is proprietary. He explains that the bootcode just needs synchronization with the debugger in LPMx.5.

    He also says that the debugger might suppress your vacant memory access (VMA) NMI, if you try to keep the debug connection alive.

**Attention** This is a public forum