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

 
 
> Обновление прошивки в МК, Безопасное обновления программы МК.
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
Ответов
kolobok0
сообщение Sep 13 2013, 14:35
Сообщение #2


практикующий тех. волшебник
*****

Группа: Участник
Сообщений: 1 190
Регистрация: 9-09-05
Пользователь №: 8 417



Цитата(owl @ Sep 13 2013, 16:10) *
..1. Куча разнообразного железа, имеющего по сути дела одинаковый загрузчик.2. Куча версий основных программ предназначенных для разных версий изделий, которые могут быть несовместимы с железом. (Более поздняя версия железа не подходит для старой прошивки и наоборот)...


1) Каждая железка = свой уникальный ID и ID партии (читай топологии платы).
2) Вы можете как угодно тусовать софт, но всё равно либо часть, либо весь софт _должен_ знать ID партии(топологии). И именно это соответствие где то должно храниться для генерации новых прошивок и при контроле заливки софта.
3) Ещё один нюанс. Если софт универсален, и подходит для множества ID партий железок, то тогда _обязательно_ софт должен нести свой _уникальный_ ID соответствующий данной партии железок. Более того, этот ID должен легко считываться сервисной службой и иметь возможность его лёгкого воспроизведения Вами. Обычно при компиляции иф-дефами удобно отключать-подключать различные обработчики нижнего уровня (драйвера - модное словечко), и именно эти-же дефайны включают-выключают биты в ID данного софта.

к слову о надёжности -
сейчас пришёл даже к такому варианту:
внутри МК содержится(может содержаться) несколько версий модулей, либо всей прошивки в целом. бутлодырь имеет возможность анализировать надёжность каждой комбинации загрузки, и в случае большого кол-ва сбоев какой-либо комбинации - перейти на предыдущий вариант сборки. Сама сборка может содержать как фулл, диференциальные, так и инкрементальные версии...

по поводу шифрования и идентификатора.
нет необходимости шифровать идентификатор прошивки. достаточно сделать открытый заголовок-трейлер, который будет нести так-же все необходимые идентификаторы. Внутри прошивки нужно продублировать данную инфу, на предмет достоверности. Тем самым Вы в большинстве случаев сэкономите время на загрузке.
Go to the top of the page
 
+Quote Post



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

 


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


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