Part Number:MSP430F5438A
Hi everyone,
I want to design Main Memory Bootloader and I am taking reference from slaa600d and MSP430F5529_Examples for Main Memory Bootloader.
I have a requirement where I have Bootloader, Application1 and Application2 sharing the MSP430F5438A flash. And MSP430F5438A should be able to reprogram itself in Application2 area using Bootloader without any external event and interference. Application1 is the backup Application which will be untouched by Bootloader. So basically the MSP430 receives the new code to be programmed from an external processor over CAN and stores it in a serial SPI flash. Then it resets itself to go to bootloader. Bootloader reads the code from serial SPI flash and downloads the new code to the Application2 area. In case of any problem, we have the default backup application in Application1 area which is untouched and Bootloader can jump to it if any problem and corruption in Application2.
So there is no need for me to use Communication Interface Code.
I am not using custom BSL because it restricts the Bootloader code to 2KB. For the time being, I am putting my bootloader in the lower flash and divide the upper flash into two regions for Application1 and Application2.
Also, I am putting the proxy reset vectors in the lower flash and the proxy vector addresses are shared by Application1 and Application2 both. Is it possible? I am not using Vector redirection to RAM because there is always a possibility of RAM corruption even though I know with vector redirection to RAM, proxy vector addresses will be logically separated.
I am still in the idea stage and I have attached my three linker command files in the text format. They are Bootloader.txt, App1.txt, and App2.txt. I would like to know if there are any potential problems in the linker cmd files. Please have a look at it.
Any suggestions, possible point of failures and workarounds will be helpful for me.
P.S. I am using almost all lower flash almost 40 KB for the bootloader and 216 KB upper flash for Application1 + Application2 for testing purposes at the initial stage.
Thanks and Regards,
Ankit(Please visit the site to view this file)
(Please visit the site to view this file)
(Please visit the site to view this file)