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.

MSP432P401R: Error using BSL Scripter: Initialization of Pxxx BSL failed! Exit the scripter!

Part Number: MSP432P401R

Hello,

I am attempting to upload an example program using the BSL scripter on the MSP432P401R Rev 2.0 Launchpad. It gets stuck on the initialization.

Input file script is: C:/.../ScriptExampleWIndows/P4xx_uart/script_P4xx_uart.txt

MODE P4xx UART 9600 COM4 PARITY
[ERROR_MESSAGE]Initialization of P4xx BSL failed! Exit the scripter!

Looking at the source code for the BSL-Scripter, I see this error happens when it fails to receive an ack of 0x00. I have tried:

1. Factory Reset
a. Project Properties > Debug > MSP432 Settings > Erase Method > Erase main and information memory
b. Allow BSL information memory erase

2. Toggle Reset on board


Any help would be appreciated.

Thanks,

Zach

  • Way out of my league on the 432 stuff, but my impression is that in general the launchpads permit JTAG flashing, but not BSL flashing.  Perhaps the datasheet for your launchpad will clarify that.  Typically, BSL Scripter requires the use of a Rocket or MSP-FET device.  But all my experience is with the MSP430 parts, and it may well be different  for your P401R.

  • Hey George.

    I looked at a few other posts such as:
    e2e.ti.com/.../554741
    e2e.ti.com/.../585822
    e2e.ti.com/.../694237

    I either need further clarification on their solutions, or the solution did not work in my case. However, I know it is possible to use BSL flashing for the 432. From my research, the MSP-FET and Rocket are not necessary. Eventually, I will be using the BSL-Scripter method on a custom board using an FTDI 232 chip.
  • Ok.  With the 432 stuff, I'm clearly well beyond the level of my expertise.  Time for the TI guys to step in and help you.

  • Thanks George. Seems I'm a little outside my expertise too. Hoping someone can chime in.

  • Hi Zach,

    sorry for catching this post late.

    First of all the steps you did by applying Factory Reset and "Allow BSL information memory erase" cause the BSL application erased. Therefore you did not get the communication working now, because simply there is no BSL on your device.

    Let me summarize this from the beginning from high level:

    1. Device is always being programmed with BSL from Factory, and the for MSP432P4, BSL is located in @20:0000. To check your BSL version, you can simply run debug session in CCS, pause the debug session and look into this region if the BSL is there. Or else, you run the BSL using BSL Scripter and simply having this commands:

      MODE P4xx UART 115200 COM188 PARITY // parity is needed when you use other communication bridge then BSL-Rocket or MSP-FET
      RX_PASSWORD_32 // unlock the BSL by comparing your device memory at @0 256 bytes.
      TX_BSL_VERSION_32

    2. Some posts that you linked above, is a slightly different case. Since BSL is programmed in information Flash memory, it is programmable. When TI updated the BSL application, we deliver the image and source code under http://software-dl.ti.com/msp430/msp430_public_sw/mcu/msp430/MSPBSL_CustomBSL432/latest/index_FDS.html

    3. My suggestion now is to download the package I linked on (2) and follow the section 5 under http://www.ti.com/lit/ug/slau622g/slau622g.pdf

    When you start the BSL communication some typical things forgotten:

    • Make sure you select the COM port. When using Launchpad, there are 2 com ports: Debug port, and application UART port. Choose the application port instead of debug port. You can check in the Devices and Printers properties
    • PARITY paramater shall be added in MODE command
    • BSL is going to sleep mode if there is no communication occurs in 10 secs. so press the Reset button on your Launchpad before starting the BSL Scripter.

    Let me know the result from reprogramming the BSL. I hope this works for you! :)

  • Hello Zach,

    Does Fatma's response resolve your issue?

    Thanks,
    Sai
  • Sai,

    Sorry I have been away. I will attempt this solution today and report back.

    Regards,
    Zach

  • Following the document provided, I encountered a couple errors.

    1. On page 40, I selected the workspace as shown in Figure 12. It routed to the project location (Projects > BSL432_MSP432P401x) and not the "User Defined" folder as shown.

    2. Per instruction #6 on pg. 41, I selected Connect Target. I received the following error: "No source available for "0xfffffffe".
    a. The Disassembly at "fffffffe" shows: ???? Memory map prevented reading 0xFFFFFFFE [code=0x20000]
    b. It says to select the Pause button on the taskbar as well. This is not an option, only Resume or Stop. I am guessing this is not much of an issue as I am assuming it is paused automatically from a HW breakpoint.

    Because of these errors, I am not able to generate a .out file which prevents me from completing this procedure.

    Thanks,
    Zach
  • Has anyone been able to replicate this?

  • I am still having issues getting the BSL scripter to work. I am using a new development board, so not having a BSL is no longer an issue.

    Any ideas?

  • I am looking at revision G of SLAU622 and having a little trouble following you.  So are you unable to create a User Defined Target configuration?  The .out file comes with the Source Package.  There is nothing to generate, the process is to establish a connection and program the .out provided.

    Regards,

    Chris

  • Hello Zach,

    Zachery Magrini said:
    1. On page 40, I selected the workspace as shown in Figure 12. It routed to the project location (Projects > BSL432_MSP432P401x) and not the "User Defined" folder as shown.

    In step 3, on page 40, if you select a project name in Location field (as documented), then the .ccxml file is saved in the project, hence it is displayed under the project and not under User Defined section. I will file a request to update the document.

    Workaround:

    • If you expand the Projects section (that is shown above User Defined section in Figure 13), and then expand the project name (under which the .ccxml file was saved), you should find the .ccxml file. You can follow the reminder of the steps on this file.
    • Alternatively, if default name is left in the Location filed, then the .ccxml file is displayed as show in figure 13 on page 40.

    Zachery Magrini said:
    2. Per instruction #6 on pg. 41, I selected Connect Target. I received the following error: "No source available for "0xfffffffe".

    All this step does is to establish connection with the MCU. Not sure what this error message is. Can you confirm that the Debugger is connected to the MCU?

    For example if using the XDS110 on the LaunchPad, then ensure that the jumper settings between the XDS110 and the MCU are correct.

    Zachery Magrini said:
    It says to select the Pause button on the taskbar as well. This is not an option, only Resume or Stop. I am guessing this is not much of an issue as I am assuming it is paused automatically from a HW breakpoint.

    I have noticed the same behavior. As you have rightly pointed out, CCS debugger has automatically halted. I think the document assumes that the CCS debugger won't automatically halt and hence ask to hit the Pause button. I don't think this is an error. I can request to add a note to avoid confusion.

    Note: If you are able to see the Resume and Stop buttons, then looks like the connection between CCS and the MCU has been established. You should be able to follow the remaining steps and Load the firmware.

    Thanks,

    Sai

  • Hi Zach,

    the reason of "No source available for "0xfffffffe" might come from the PC is not setup correctly. On this stage, the BSL image is downloaded, but the rest of the main memory is empty, therefore it is complaining there is no reset vector to refer to.

    If you pause the session, then look into the BSL area @0x202000, and you see the BSL is programmed there, then you don't have to worry about the "No source available for "0xfffffffe".

    If you need to debug your BSL, after pausing the session, select the View --> Registers, and set the PC to the BSL address 0x202020. Run the debug mode again.

    If the BSL is programmed correctly and you reset the device completely, while the device main memory is still empty, the BSL is executed in the beginning and you can talk to the BSL.

    Let me know the outcome of this.

**Attention** This is a public forum