Коротко о главном
Надёжное обновление начинается с определённого пути восстановления работоспособного устройства. До реализации передачи файла нужно решить, что произойдёт при отключении питания во время стирания, записи, проверки и активации нового образа прошивки.
Отделите системный загрузчик от обновления изделия
Встроенный системный загрузчик STM32 и загрузчик готового изделия не обязательно решают одну задачу. Интерфейсы и условия входа зависят от микроконтроллера; они описаны ST в AN2606. Проверяйте точный артикул, а не только название семейства. STMicroelectronics — AN2606
Программатор удобен на рабочем столе, но может быть недоступен после установки устройства. Опишите, кто сможет добраться до неисправного изделия и какое соединение останется доступным. Это помогает выбрать восстановление через локальный интерфейс, сервисный доступ или другой предусмотренный канал.
Посчитайте память до выбора схемы обновления
Учтите загрузчик, приложение, настройки и рабочие области. Оставьте обоснованный запас для развития программы. Возможность хранить два образа внутри микроконтроллера или необходимость внешней памяти определяются расчётом для конкретной модели.
MCUboot описывает, среди прочего, пробный запуск с подтверждением и возвратом к прежнему образу. Такая схема может быть полезна, но не появляется автоматически в любом проекте STM32. Необходимо проверить реализацию и требования к памяти. MCUboot — Bootloader design
Определите условия активации образа
Разделите состояния: принят, проверен, запущен для проверки, подтверждён. Завершение загрузки файла само по себе не должно означать разрешение запуска. Проверяйте принадлежность образа аппаратной версии, допустимый размер, версию и целостность.
Контрольная сумма помогает выявлять определённые ошибки передачи, но не подтверждает доверенное происхождение программы. Если этого требует модель угроз, предусмотрите проверку цифровой подписи и защищённую основу доверия. Управление ключами и разрешение выпуска тогда становятся частью процесса сопровождения изделия.
Испытывайте прерывания по этапам
Отключайте питание в разных точках процедуры и записывайте состояние после включения. Добавьте неполный образ, неверную аппаратную идентификацию и приложение, которое запускается, но не проходит проверку работоспособности. Такой набор информативнее одного успешного обновления.
Пример критерия приёмки: после каждого согласованного сбоя запускается прежняя утверждённая программа либо доступна документированная процедура восстановления. Допустимость автоматического перезапуска определяется функцией самого устройства. Не считайте одинаковую реакцию подходящей для всех изделий.
Что включить в концепцию обновления
- Точную модель MCU, ревизию платы и расчёт памяти.
- Доступный путь восстановления и условия его использования.
- Состояния образа и правила подтверждения запуска.
- Переход между версиями конфигурационных данных.
- Протокол испытаний со сбоями питания и идентификаторами прошивок.
Частые вопросы
Достаточно ли двух банков Flash?
Нет. Нужны корректный порядок обновления, согласованные данные состояния и проверенное решение о запуске. Свойства Flash следует уточнять для выбранного микроконтроллера.
Обязательно ли делать обновление по воздуху?
Нет. Иногда подходит локальный сервисный интерфейс. Решение зависит от доступности устройства, стоимости простоя, обслуживания и требований к происхождению прошивки.
Технические источники
Услуга по теме