Цитата(HardEgor @ Dec 20 2016, 05:08)

Напишите все требования к протоколу сразу. Два уже есть.
Как делаю я.
1. IAR формирует hex файл.
2. На этапе postbuild в этот файл автоматически (давно написанной утилитой) добавляется заголовок (номер версии, тип процессора, название проекта, идентификатор клиента), затем всё это шифруется.
3. Конечный файл можно размещать на сайте или пересылать клиентам по открытым каналам.
4. Затем этот файл с помощью другой утилиты заливается в контроллер, где данные принимает загрузчик, налету расшифровывает и записывает во Flash.
5. Так как запись производится в процессе передачи данных, то скорость прошивки определяется скоростью записи в память. Скорость канала не является критичной, например скорости 115200 мне всегда хватало.
6. Проверено на STM8, STM32 и некоторых контроллерах других семейств. Утилиты являются универсальными, аппаратные различия на уровне загрузчика в контроллере.