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.

Custom BSL entry invoked from RST/TEST

Other Parts Discussed in Thread: MSP430F5438A

I have a working custom BSL for the 5438A largely based on the SLAA450 CCS CUSTOM_BSL project.  I can successfully invoke it through a user app just as it's done in the CUSTOM_BSL_APP. My problem is, I would like to also invoke the BSL through the RST/TEST lines.  When I do the proper sequence on these lines, I can tell the BSL430_Low_Level_Init.asm code is run but it leaves the BSL and jumps to the app and I'm not sure why.  I'm under the impression the default BSL would have jumped to the BSL code and would start running the command interpreter so I'm wondering why the custom bsl doesn't.  Can someone explain the difference in behavior and how to correct or tell me where I can find the BSL430_Low_Level_Init.asm file (or code used in the startup sequence) for the default BSL?

  • It does not matter what you use to program the MSP430F5438A. It boils down to this:

    If the content of location 17F6 is C35A, and the content of location 17F4 is 3C5A, then the code starting at where location 17F2 points to is executed after a BOR. This happens independent of whether the RST/TEST "BSL entrance sequence" occurred or not. On the contrary, your code there could read the SYSBSLIND bit of the SYSCTL register to determine if that sequence occurred or not. If it is set, return a 0002 in R12 register to invoke the BSL starting at where location 17FA points to. Else, return a 0000 in R12 to invoke the Application starting at where location FFFE points to.

  • Hi,
    have you looked at the following wiki describing the device entry sequence on 5xx BSL?
    processors.wiki.ti.com/.../Custom_MSP430_BSL
  • Thanks, the SYSBSLIND bit test is what I was missing.  The custom BSL had replaced this check with a test in the INFOB at 0x1900 for a BSL flag string "RUNBSL" so it would only stay in the BSL if the flag string was present.

  • Thanks Leo. The wiki goes into much more detail on the startup sequence than slaa450 does. The references to the default BSL430_Low_Level_Init.asm code allowed me to see how both BSLs were testing for a specific BSL start request. I just had to combine the two tests.

**Attention** This is a public forum