MSPM0L1105: Safe address space, updating application code through bootloader

Part Number: MSPM0L1105
Other Parts Discussed in Thread: MSPM0G3507, MSPM0G3519

We are writing code to update the application code on this processor, entering boot mode thru our application, uploading new code. Our application starts at address 0x0 in flash. I've seen cautions this is not advisable. Is this true? Do we need to relocate our application code to space starting at 0x8000 and up in flash?

  • I've seen cautions this is not advisable. Is this true?

    I'm not  sure where you see this, but as long as you handle the jump between boot and app correctly, everything will goes well.

    Bootloader and BSL

    Firmware update function can be separated two part,

                    #1 is the two image handling mechanism in Flash, there is bootloader to handle two part firmware in M0 Flash

                    #2 is the program protocol and Flash operation (Erase, program, verify), it’s firmware update solution

    These two part has several solutions, and can combined depending on user’s requirements.

     

    Solution:

    #1 is the two image handling mechanism in Flash

    1. Software handled boot image: need different linker file for image 1 slot and image 2 slot

    Online docs (Boot Image Manager): https://dev.ti.com/tirex/explore/node?isTheia=false&node=A__APjkYg9RWxwM6nRUc3InzA__MSPM0-SDK__a3PaaoK__LATEST

    SDK path: C:\ti\mspm0_sdk_2_10_00_04\examples\nortos\LP_MSPM0G3507\boot_manager

    1. MSPM0 dual bank solution

    Docs&Demo:

    Download link:

    Access code:   

    Online brief docs: https://www.ti.com/lit/an/spradn2/spradn2.pdf

     

    #2 is the program protocol and Flash operation (Erase, program, verify)

    1. Refer to secondary BSL.

    Secondary BSL solution has two part:

    flash based BSL protocol: Help to quickly modify to your protocol.

    Flash operation demo: Directly used as your own bootloader’s Flash operation example.

    SDK file path: C:\ti\mspm0_sdk_2_10_00_04\examples\nortos\LP_MSPM0G3507\bsl\secondary_bsl_i2c

    MSPM0 Bootloader (BSL) Implementation (Rev. C) https://www.ti.com/lit/pdf/slaae88

    MSPM0 Bootloader User's Guide https://www.ti.com/lit/pdf/slau887

    1. Manually create Flash operation based on MSPM0 SDK.

    SDK path: C:\ti\mspm0_sdk_2_10_00_04\examples\nortos\LP_MSPM0G3519\driverlib\flashctl_xxx