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

 
 
 
Reply to this topicStart new topic
> Есть ли общие принципы для бутлоадеров?
RodionGork
сообщение Aug 30 2009, 07:54
Сообщение #1


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 30-10-07
Из: Санкт-Петербург
Пользователь №: 31 866



Уважаемые товарищи!

Я догадываюсь, что бутлоадеры в разнообразных видах и для разнообразных процов писали очччень многие. Поэтому поиск по форуму дает массу ссылок, в которых интересный мне вопрос не освещен.

Прошу вашей помощи.

Существуют ли какие-то "общие" принципы, которые полезно соблюсти сочиняя бутлоадер для дальнейшего использования в собственных трудах? Интересно бы узнать, прежде чем бросаться с топором...

Речь идет о следующем:
- бутлоадер в принципе может быть рано или поздно применен для разных архитектур;
- может случиться, что он будет работать отнюдь не с UARTом а по каким-то странным причинам, например, с I2C и др.;
- тем не менее, ясно, что он занимается тем, что воспринимает прошивку в некотром виде и записывает ее на флешку контроллера;
- и вот вопросы лезут - с одной стороны есть ли независимо от перечисленных разнообразий, определенная тенденция к применению файлов прошивок в каком-то определенном формате (intel HEX, скажем), к применению какого-то привычного протокола (скажем, XMODEM), к применению какого-то популярного вида шифрования, надежного по крайней мере для прошивок (или лучше "каждый шифруй по своему, чтоб никто не догадался"), ужимания умеренного.

Хотелось бы, однако, почитать... Узнать и т.п. А то глупо будет, скажем, выдумать свой протокол, свой формат, свою утилиту для преобразования прошивок в него на стороне хоста - а потом обнаружить что половина средств разработки позволяет подготавливать файлы прошивок в каком-либо специально замечательно подходящем для бутлоадинга формате.

заранее спасибо,
Родион
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Aug 30 2009, 08:09
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(RodionGork @ Aug 30 2009, 10:54) *
(или лучше "каждый шифруй по своему, чтоб никто не догадался")

Вот такого точно не бывает, т.к. есть DES. Его сложно поломать, а "каждый по-своему" - поломать легко.
Затем, бутлоадер - это программа минимальная по размеру. Чаще всего размер диктует все остальное.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Aug 30 2009, 08:28
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(RodionGork @ Aug 30 2009, 10:54) *
обнаружить что половина средств разработки позволяет подготавливать файлы прошивок в каком-либо специально замечательно подходящем для бутлоадинга формате.

Спите спокойно - не обнаружите sad.gif. Посему с учетом Ваших правильных рассуждений пишите свое. В качестве базы,которую в свое время взял и я, для подготовки прошивок можете взять, полагаю, известный AN Атмела по AES бутлоадеру.
http://www.atmel.com/dyn/resources/prod_do...nts/doc2589.pdf
Исходники написаны крайне дурно (и bootloader и PC утилиты), но в качестве отправной точки и идеи годится вполне. Record Types можно добавлять, отказываясь для других контроллеров от буквального управления процессом прошивки заточенном под AVR. Сейчас оно у меня живет (c добавлением двух Record Type) и на ARM. Сырой бинарный фомат я, естественно, сразу похерил - сделал по мотивам HEX - огрызок в приложении. Загрузчик встроен в том числе и в терминальную программу. Загрузчик в контроллере распознает и Intel HEX Extended формат и соответствено позволяет, если не установлены биты защиты, заливать и его.
Прикрепленные файлы
Прикрепленный файл  aes_demo.txt ( 3.35 килобайт ) Кол-во скачиваний: 72
 


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Aug 30 2009, 21:46
Сообщение #4


Гуру
******

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



Хотелось бы добавить к сказанному следующее.
Я у себя добавил запрос / ответ идентификации устройства.
На данном этапе вывожу туда:
1. ID устройства
2. ID процессора
3. Версия HARDWARE
4. Версия SOFTWARE
5. Логический номер устройства
6. Серийный номер устройства


Эта идентификация едина и для бута и для приложения. Причём при заливке новой версии меняется только версия SOFTWARE (что очевидно).
В результате у меня единообразные PC проги. С помощью редактирования текстового файла можно пользоваться с разными устройствами. Также избегаешь определённой чехарды. Ну например имеется изделие. Чуть изменили схему и продолжили выпускать в том же корпусе. Нет на складе atmega8 - запаяли atmega88.

Пользователь по запросу получит полную информацию по устройству и программа предупредит его в случае, если имеется несоответствие между устройством и прошивкой. Также он сразу увидит какая именно прошивка ему нужна.
Go to the top of the page
 
+Quote Post
RodionGork
сообщение Aug 31 2009, 04:41
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 239
Регистрация: 30-10-07
Из: Санкт-Петербург
Пользователь №: 31 866



_Pasha: спасибо, ваша мысль правильна на мой взгляд и потому понятна, за исключением того, что есть "политический момент". Когда заказчику (требовавшему "очень страшно засекретить его разработку" супротив поганых конкурентов) в отчете сообщают что используется шифрование DES, он лезет в википедию и обнаруживает что "ну вот, он уже давно сломан, вместо него иногда используется Triple-DES, но честь уже замарана и т.п." - объяснять, что его разработка не стоит тех денег, которые потребуются на оплату трудов потенциального взломщика довольно трудно. С этой точки лучше, конечно, указать что используется "оригинальный алгоритм"... ;-) Ну кроме того реализация DES и AES для некоторых особо мелких бутлоадеров на мой взгляд "жирновата".

Zltigo: весьма благодарен за экспертное и объемлющее сообщение, собственно являющееся ответом на мой вопрос. На упомянутый AN я уже неоднократно натыкался, собственно он и побудил меня задать вопрос... ;-)

SasaVitebsk: также спасибо за указание полезных моментов, которые, видимо, следует принять на вооружение.

В общем, я примерно все понял. %)

Сообщение отредактировал RodionGork - Aug 31 2009, 04:43
Go to the top of the page
 
+Quote Post
XVR
сообщение Aug 31 2009, 10:58
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 3 123
Регистрация: 7-04-07
Из: Химки
Пользователь №: 26 847



Есть еще некоторые идеи:
1. Сам bootloader может быть модульным и конфигурируемым. Что бы пользователь мог выбрать из всех фич, предоставляемых им (bootloader'ом) то, что ему (пользователю) реально нужно
2. Bootloader должен поддерживать сменные модули доступа к внешнему интерфейсу (например UART, I2C, etc)
3. Загрузчик на PC должен быть пострен по компонентному принципу, что бы позволить заливать прошивки в нестандартно включенные МК (например по цепочке JTAG -> CPLD (в boundary scan mode) -> МК (с UART) )

У меня есть весьма старый лоадер для PIC, который поддерживает п1. К сожалению на WEB он похоже не сохранился sad.gif
Go to the top of the page
 
+Quote Post

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

 


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


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