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

 
 
> Бутлоадер., Жду критики от знающих.
SasaVitebsk
сообщение Jul 13 2007, 18:26
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Доброго всем времени суток. Те кто занят, прошу не беспокоится, - срочного ничего нет.
Ну а тем кто найдёт время мне на ответ, - заранее благодарствие и салют. smile.gif
Принимаются все ответы. Причём благожелательно. Ценятся ответы знающих людей,
которые всё это уже прошли и мысли тех кто это не реализовал пока, но планирует и
обдумывает. smile.gif Желательно, конечно, чтобы я знал - где просто мысли, а где реально
работающие идеи. smile.gif

Теперь к самому вопросу.
Хотелось бы реализовать бутлоадер. Похоже я до него созрел. Но что-то стандартный
подход мне не очень нравится. Хотя я в этой теме ноль без палочки и возможно я
просто ещё многого не понимаю. Короче жду предложений и критики. А свой подход
изложу ниже и попытаюсь его обосновать. Возможно кто-то ещё подключится.

Кратко опишу само изделие, чтобы понятно было почему стандартный подход не нравится.
1) Изделие имеет постоянную связь с компом по RS485. Свой протокол.
2) Изделие настраивается и конфигурируется "на готовое". Для чего существует спец
программа. Отсюда можно узнать текущую версию встроенного ПО. Сюда и планируется
воткнуть обновление ПО.
3) Изделие не имеет никаких кнопок и т.п.
4) В изделии может быть установлено несколько паралельно подключенных блоков с
разными серийными номерами.
5) Изделие выпускается и, поэтому новое должно быть совместимо снизу вверх.

Какие планы.
1) Не устраивает перезагрузка по нажатию или по включению. Хотелось бы обновление
Стандартными средствами (моими конфигурационными) причём в любой момент во время
работы.
2) В связи с тем, что протокол уникальный и меняться не будет (в связи с совместимостью)
то желательно чтобы загрузка шла в рамках данного протокола.
3) Исходя из п.2 хотелось бы саму процедуру загрузки (формирование протокола) вывести
из под программы. То есть чтобы программа и bootloader использовали процедуры bootloadera.
Я это предполагаю сделать путём ссылки обоих груп векторов на одни и теже обработчики.
Также в начальном проекте планирую сразу разместить bootloader. Так сказать сделать его
интегрированной составляющей проекта. Также хочу вынести из под "переписываемой-обновляемой"
части некоторые фиксированные таблицы. Например CRC.

Плюсы я вижу такие. Меньший объём обновляемой части. (для моего проекта это всего 25-30к из
60). Сохранение работоспособности в плане перезаписи даже при разрыве в режиме обновления ПО.
Удобство для конечного пользователя.

Некоторые непонятные для меня моменты следующие. Кристал 64к, а должно работать около 10к в режиме
бутлоадера. Слишком большой размер для бутлоадера это не проблема?
Переписывается незначительная часть. Насколько я понимаю если это кратно страницам, то проблем с
этим быть не должно. Главное чтобы я сам не запортил при программировании. Я прав?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Jul 14 2007, 07:55
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Короче если подытожить, то первый пункт, в смысле переход в бутлоадер во время работы и работа под своим протоколом - это нормально. И уже практикуется другими.

Остался для меня неясным один момент. Ну например у меня 60к кода. Могу ли я обновить только первых 20к, например? А остальные оставить без изменения? Насколько я понимаю, то могу это сделать кратно странице. Я прав?
Go to the top of the page
 
+Quote Post
Dog Pawlowa
сообщение Jul 14 2007, 08:23
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 702
Регистрация: 14-07-06
Пользователь №: 18 823



Цитата(SasaVitebsk @ Jul 14 2007, 10:55) *
Короче если подытожить, то первый пункт, в смысле переход в бутлоадер во время работы и работа под своим протоколом - это нормально. И уже практикуется другими.

С оговорками. Нужно исходить из того, что загрузка может не получиться, и устройство может остаться с полностью неработающей основной программной памятью. Тогда оно должно стартовать с бутлоадера. Если на это не закладываться, то можно делать как угодно. Если все-таки закладываться, то два варианта:
- полностью независимый бутлоадер (протокол можно повторить, или, поскольку это специальный случай, использовать другой, попроще)
- передача полного образа программной памяти под своим протоколом и промежуточное хранение в памяти (например, внешняя флэш), а потом, по команде того же протокола - перезапись из промежуточной памяти в программную память микроконтроллера.

Я использую и один вариант, и другой.

Цитата(SasaVitebsk @ Jul 14 2007, 10:55) *
Остался для меня неясным один момент. Ну например у меня 60к кода. Могу ли я обновить только первых 20к, например? А остальные оставить без изменения? Насколько я понимаю, то могу это сделать кратно странице. Я прав?

Конечно. Но это решение мне напоминает методику 20-летней давности, когда объем компилируемой программы был ограничен, в результате вся программы билась на части, а взаимодействие между частями организовывалось с помощью векторов входа и внешних переменных по фиксированным адресам. Вам это надо? В наше то время, когда космические корабли бороздят просторы вселенной? (с)


--------------------
Уходя, оставьте свет...
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Jul 14 2007, 17:40
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



Цитата(Dog Pawlowa @ Jul 14 2007, 11:23) *
Конечно. Но это решение мне напоминает методику 20-летней давности, когда объем компилируемой программы был ограничен, в результате вся программы билась на части, а взаимодействие между частями организовывалось с помощью векторов входа и внешних переменных по фиксированным адресам. Вам это надо? В наше то время, когда космические корабли бороздят просторы вселенной? (с)


Честно говоря так и планировал. sad.gif

Простите ребята. В общем-то в жизни меня никто по крупному не обманывал. В кого я такой? smile.gif Ну ничего на веру не принимаю. По работе. Пока сам не убежусь. Обязательно надо на грабли наступить. Вы уж простите. Ну и спасибо всем участвующим в обсуждении. Попробую по своему, но Ваше мнение (причём единогласное) конечно же в уме держать буду. В конце концов приду к какому-нибудь гибриду. smile.gif

2 Богдан ответь мне на пару вопросов.
1) У тебя бутлоадер с шифрованием?
2) Разве из бута можно ставить и читать фузы?
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jul 15 2007, 13:15
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(SasaVitebsk @ Jul 14 2007, 20:40) *
2 Богдан ответь мне на пару вопросов.
1) У тебя бутлоадер с шифрованием?
2) Разве из бута можно ставить и читать фузы?


1 Да,бутоадер с шифрованием ,сам знаеш ,бутлоадер - это единственный способ когда можно защитить прошивку от копирования,грех такой возможностью не воспользоваться smile.gif.
Сначала шифровал по алгоритму ,потом пришел к выводу ,что этот способ ненадежный ,совсем недавно решил делать по таблице - думаю этот способ непробиваемый ,правда таблица у меня сьедает
256байт,но место есть.

2 Можно читать конфигурационные фузы ,читать и писать фузы защиты касающиеся доступа к секции бутлоадера и секции программ.Защиту можно увеличить только в большую сторону ,снять и изменить ее нельзя.

Хочу еще через бут заливать внешнюю память подключенную к МК,пока над этим работаю. smile.gif
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Jul 15 2007, 13:23
Сообщение #6


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(bodja74 @ Jul 15 2007, 16:15) *
Сначала шифровал по алгоритму ,потом пришел к выводу ,что этот способ ненадежный ,совсем недавно решил делать по таблице - думаю этот способ непробиваемый ,правда таблица у меня сьедает
256байт,но место есть.

Ниужели более непробиваемый, чем AES256?
Go to the top of the page
 
+Quote Post
bodja74
сообщение Jul 15 2007, 14:07
Сообщение #7


Знающий
****

Группа: Свой
Сообщений: 543
Регистрация: 22-10-05
Пользователь №: 9 984



Цитата(IgorKossak @ Jul 15 2007, 16:23) *
Ниужели более непробиваемый, чем AES256?


Да ,более непробиваемый ,чем AES256.Или не менее lol.gif
Go to the top of the page
 
+Quote Post
acex2
сообщение Jul 15 2007, 15:50
Сообщение #8


Адепт
****

Группа: Свой
Сообщений: 520
Регистрация: 15-02-05
Пользователь №: 2 656



Цитата(bodja74 @ Jul 15 2007, 18:07) *
Да ,более непробиваемый ,чем AES256.Или не менее lol.gif


Дайте угадаю - у вас шифрование методом подстановки по таблице?
Тогда это хорошая шутка про сравнение с AES lol.gif
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- SasaVitebsk   Бутлоадер.   Jul 13 2007, 18:26
- - defunct   Цитата(SasaVitebsk @ Jul 13 2007, 21:26) ...   Jul 13 2007, 19:52
- - WEST128   По поводу зугрузчика - цитата из даташита Entering...   Jul 13 2007, 19:58
- - Tcom   Мысли: Программу загрузчик в МК, можно поместить в...   Jul 13 2007, 19:59
|||- - bodja74   Цитата(acex2 @ Jul 15 2007, 18:50) Дайте ...   Jul 15 2007, 19:26
||- - zltigo   Цитата(Dog Pawlowa @ Jul 14 2007, 11:23) ...   Jul 15 2007, 22:25
||- - Dog Pawlowa   Цитата(zltigo @ Jul 16 2007, 01:25) .... ...   Jul 16 2007, 04:21
|- - defunct   Цитата(SasaVitebsk @ Jul 14 2007, 10:55) ...   Jul 14 2007, 12:50
- - bodja74   2Саша Это случайно не то ,что ты ищеш Прога коне...   Jul 14 2007, 14:25


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

 


RSS Текстовая версия Сейчас: 28th June 2025 - 23:31
Рейтинг@Mail.ru


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