2019-10-23 02:38 AM
We are developing a product and are stuck at Firmware over the air updates.
It seems like we will need a system that meets the following requirements:
Note: the last two are for security purposes only.
Do these requirements make sense to you? Would love to know if I'm missing anything critical.
I had some questions about how to handle the increased flash memory storage needs:
Thanks for the help! Really appreciate the guidance.
2019-10-23 05:49 AM
The ability to stage firmware images can be very helpful. A lot of the newer STM32 part/families support QSPI (NOR Flash) devices, among others, that can provide a lot of space relatively cheaply and easily.
The STM32H750 has QSPI support and HW Crypto. https://www.st.com/en/microcontrollers-microprocessors/stm32h750-value-line.html
Crypto, compression and deltaing can all be done in software too.
In STM32 parts with larger flash or multiple banks, you can use regions to stage or place firmware updates or alternate images. A lot of the more recent designs have 512KB, 1MB and 2MB offerings. The 144-pin devices have perhaps the broadest selection of mostly pin-compatible parts. Occasionally a handful of pins you might need to special case but usually covered in data sheet, reference manual, or migration guides.
External memory has security issues, as devices can be removed, probed and modified. If they are just holding encrypted data in the form you'd usually provide as a download on the web, you're not really providing any additional means to get at the information inside. Hash/sign your images, compress and encrypt them.