Примерно так сделано в бутлодыре ESP8266. Там два образа лежат - рабочий и тот что обновляется. Плюс маленький кусочек кода для проверки целостности и выбора варианта при старте. Бутлодыря фактически нет, прошивка обновляется из основной программы. Как только новый образ готов - проверяется целостность и перекидывается флажок, указывающий какой из образов рабочий а какой обновляемый.