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.

MSP430F6775A: BSL

Part Number: MSP430F6775A

Tool/software:

Hi!

I would have few questions about MSP430F6775A device which I am working with now. Is the boot sequence modifiable? Specifically, are the addresses starting with @17Fx and the associated sequences permanent?

In the BSL_ACTION function defined in the low_level...asm file, there are the values 0xBEEF and 0xDEAD, which are compared with registers R13 and R14. I couldn’t find any such values being moved to that location, at least not in that assembly.

Additionally, in the BSL_Entry_JMP function, the C_Branch JMP instruction appears first, followed by BSL_Action. Is BSL_Action ever processed, or does it simply jump to the C initialization function?

Also why there are data in TI-HEX after build in interrupt vector memory segments including reset vector should not be that area cleared or should I modify the linker file to not generate anything into those .int segments. There is nothing like that in released images.

Thank you!

  • Are you referring to any code provided by TI? Can you share more background about like "@17Fx", "BSL_ACTION". " BSL_Entry_JMP"

  • Yes, the addresses are from the SLAA450G, and the code is referring to custom BSL examples provided by TI. I apologize for accidentally clicking the ‘This solved my issue’ button.

  • The code with Low_level_code.asm file is available here: MSPBSL_CustomBSL430 1_02_00_01 - TI.com

  • For the Low_level_code.asm file are build into Z-area. The Z-Area is a special section of memory designed to allow for a protected BSL to be publically accessible in a controlled way. The Z-Area is a section of BSL memory between addresses 0x1000 and 0x100F that can be jumped to and read from external application code. The Z-Area functions as a gateway from which a jump can be performed to any location within the BSL memory. The default TI BSL uses this area for jumps to the start of the BSL and for jumps into BSL public functions.

    Usually, the customization required here is limited to:

    • Changing the BSL_Protect function to invoke the BSL on different conditions.

    • Writing values that are not 0xFFFF to the JTAG key location for a final BSL image.

    • Adding additional functions to the Z-Area to make them executable by user code.

  • Okay, I understand but Is the BSL_ACTION0 function ever executed. Cuz it is followed by C_Branch and when I call C_Branch than main code is executed. Or am I wrong? And also when I put the  BSL_function before C_Branch C_Branch is never executed the BSL never launch till I won't move the #0xDEAD and #BEEF to the ARG2 and ARG3 registers. So, what is the purpose cuz it looks like some gimmick to me even though there is some explanation in SLAU. It looks more like it has no functionality. I mean before the argument check how should the magical keywords like #0xDEAD and #0xBEEF get into those registers so it will be compared?

  • Hi Stanislav,

    I have not try that, but if you want to execute the BSL_ACTION0 you can just set the PC to 0x1002, I think that should call the BSL_ACTION0. 

  • Hi Gary,

    I tried putting BSL_Action0 before C_Branch, and I also modified the BSL_Action function. However, it won’t work until I move those keywords #0xBEEF ... to the register before comparison or until I omit them from the code. I’m asking because I want to save some memory space by removing unnecessary code. However, I’m still unsure about this, which is why I’m seeking clarification.

  • For the function called should be handled in the boot code that in the ROM that you can't modify it. if you want to save some some data, I recommend to save it in the information memory and not to modify the BSL code if you used it.

  • Okay, but I need the BSL memory so I can use more functions in BSL or add further verifications. 

  • ok, but will recommend not to do any modification in the Z-Area, you can try to remove some core commands that you do not needed.

  • OK, thank you.

**Attention** This is a public forum