Showing results for 
Search instead for 
Did you mean: 

Which boot should I use on my L476?

Manuel Ferrero
Associate III
I'm looking for a simple solution to update firmware on my application developed on a STM32L476, with the minimum effort.
As far as I understood this chip already has a boot on it that allows to get data via UART1 and a proprietary protocol from STM.
I want to download my new firmware on one of the two banks available while the firmware is running on the other bank. I was planning to have a part of my application dedicated to get data via RS485, write it on the second bank, verify it and then reboot.
Is the boot from STM able to make the bank switch? If the answer is yes, is there something that I overlooked with my idea?

Then of course I have to consider the case when the process does not go well and I may found myself without a valid application: do I need to write some sort of user code in the boot to recover or the boot itself is already all I need to download a new firmware and write it on one bank and run it? (provided of course that I can send data via UART1)

The ROM based loader is minimally aware, it's not designed for exotic behaviour, or RS485 connectivity.

It can check for a valid location/image in either bank, but you've got no particular management of that.

It would be better if you made a small stub-loader (several KB), placed at the front of each bank, that could test which is the most update and valid image and then fork to that and do the bank-switching where necessary.

The UART protocol is well documented (15+ years), and there's several code examples using it.

For your OWN loader, perhaps pick something robust and standard like X-MODEM, where there is Terminal support via app's generally available to technicians, et al.

For best user experiences be able to code on deployment platforms like Windows, Mac, Linux, etc.


Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..