У STM32F4 есть удобный и надежный способ обновления прошивки - DFU, единственный минус, что прошивка полностью открыта. И клиент может накопировать
её в копии Вашего устройства сколько угодно раз.
Во избежание несанкционированного копирования Вашей прошивки в сторонние устройства, сначала грузим в камень собственный загрузчик, который защищаем от чтения,
и уже ему скармливаем по виртуальному последовательному порту криптованную прошивку на собственном алгоритме шифромания,
Которую загрузчик декодирует и пишет во флэш память контроллера. Получается весьма шустро. Именно потому что последовательный порт - виртуальный.
А по факту работает на скорости USB.
https://www.youtube.com/playlist?list=PLMcV...qDxzNoEX9pjwFSS