Hi,
I am reposting this as a continuation of my previous post MSP430FR6989: Firmware update handled by firmware (without bootloader).
I am trying to find a way to achieve firmware update that is handled in the application itself (without entering bootloader state). My idea is that I can have a function in my firmware that handles the firmware validation and writing into memory address. Let's call this function as "in-app bootloader". To achieve this, "in-app bootloader" must be functional and not to be overwritten during firmware update. Is there any way to achieve this? Or more specifically, how to define in the linker file (I suppose this is the area to edit) to exclude or to prevent the memory address of the "in-app bootloader" from being overwritten, while the "in-app bootloader" remains as a part of the complete firmware image?
I can't find much forum posts that discuss about this. Would really appreciate if anyone could also share with me if you find any forum post to be relevant.
I would also like to answer the question to me from the previous post (I am sorry that I didn't reply to the question quickly as I was dragged by other projects):
"Are you talking about something like a main memory bootloader (take a look at MSPBoot (https://www.ti.com/lit/slaa600) for an example).
Or something more in main application rather than abstracted into a separate bootloader and application? You do have to be careful when writing to the same memory you are running from."
My answer is no. In fact, I am currently using crypto-bootloader as my main memory bootloader now, and I now need to work on firmware-update-over-the-air (FOTA) which is not supported by my current bootloader. However, my device has been sealed up, so I no longer have access to the debug port (JTAG/SPW port), resulted that I am unable to access to and edit the bootloader. Therefore, I am trying to find a way to design an "in-app bootloader" that acts just like the main memory bootloader, but in the application level. Please advise if this is possible?
Thank you.