реклама на сайте
подробности

 
 
> Обновление прошивки в МК, Безопасное обновления программы МК.
owl
сообщение Sep 13 2013, 12:10
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 90
Регистрация: 7-08-06
Из: Смоленск
Пользователь №: 19 370



Мысли в слух. Кто чего может прделожить интересного.
Имеем однокристалльный МК - как частность АРМ.
Программа МК содержит самописный загрузчик и собственно основную программу.
Собсвенно сами интересности:
1. Куча разнообразного железа, имеющего по сути дела одинаковый загрузчик.
2. Куча версий основных программ предназначенных для разных версий изделий, которые могут быть несовместимы с железом. (Более поздняя версия железа не подходит для старой прошивки и наоборот)
Ну и как следствие проблемы:
Залита не та версия программы - не в ту железку.

Если на своем рабочем месте - это легко исправимо. Загрузчик - защищает сам себя от перезаписи и все легко можно откатить.
А если где-то удаленно? И это делает человек очень далекий от железа и приборов перепрошивается много?
А если после выпуска прибора прошло пару лет?

Т.е. система должна быть дубовой и надежной))))

Дорогие форумчане, что можете предложить? Проблема ведь типовая?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Сергей Борщ
сообщение Sep 13 2013, 12:44
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Если прошивку обновляет клиент - она должна быть криптована. Соответственно для несовместимых версий железа используются разные ключи криптования и "неправильная" прошивка не будет расшифрована и, следовательно, будет отвергнута загрузчиком. Другое дело, если основной функционал прошивок для разных модификаций железа сильно схож - тогда может иметь смысл хранить в области загрузчика идентификатор версии железа и в одной глобальной прошивке предусмотреть поддержку всех вариантов железа с ветвлением по прочитанному из загрузчика идентификатору. В этом случае загрузчик может в начале обновления получать информацию о версии прошивки и сравнивая с минимально допустимой версией отвергать либо принимать ее. Причем идентификатор версии имеет смысл заложить изначально, даже если не планируете ветвление по нему. Со временем захочется прийти к объединенному варианту прошивок, а все необходимое для поддержки такого варианта у вас уже будет даже в старых приборах.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 29th July 2025 - 12:38
Рейтинг@Mail.ru


Страница сгенерированна за 0.01358 секунд с 7
ELECTRONIX ©2004-2016