Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Какой Bootloader лучше?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
GSK
Приветствую.

Поделитьесь пожалуйста опытом использывания Bootloader-ов.
Какой выбрать?
Igor26
Берем апнот AVR109 и рихтуем под себя. Это и будет самый лучший BootLoader :-)
blackbit
Лучший bootloader - свой, написанный с нуля.
GSK
Спасибо за очень содержательные ответы.
Что б дальнейшем ограничиться от таких ответов, уточню:
А из уже готовых, какой лучше?
Baser
Цитата(GSK @ Apr 21 2008, 13:02) *
Спасибо за очень содержательные ответы.

Какой вопрос - такие и ответы smile.gif
Или вы думаете, что люди перед применением пробуют по 10 бутлоадеров?

Лучший бутлоадер тот, который максимально удовлетворяет требованиям конкретного проекта.

Вы же свои требования не написали...
Я вот взял AN231 и применил - работает cool.gif
Igor26
Цитата
Спасибо за очень содержательные ответы.

Не понял Вашего сарказма. Я же сказал, что использую переделанный под другой протокол AVR109. Ничего сложного в нем нет.
KRS
А требования какие?
IMHO лучший прямо в чипе уже есть wink.gif через SPI (serial programming)
GSK
Прошу прощения если кого-то обидел.
Просто хотелось узнать мнение людей, кто уже разбирался с загрузчиками.
Может я невнятно выразился, но меня интересует уже готовая связка из программы на компьютере и программы в микроконтроллере для загрузки в его память программы пользователя.
Согласитесь, что все загрузчики разные. У некоторых есть оконный интерфейс, некоторые работают из командной строки. Неготорые быстрые, другие неочень. Одни занимают много места, другие мало и т.д.

Так который выдрать? Чтоб иметь удобную часть на компьютере и маленький и шустрый код в микроконтроллере.
proba
http://avrubd.googlepages.com/avrub.htm
defunct
Цитата(GSK @ Apr 21 2008, 13:56) *
Просто хотелось узнать мнение людей, кто уже разбирался с загрузчиками.
...
Так который выдрать? Чтоб иметь удобную часть на компьютере и маленький и шустрый код в микроконтроллере.

Написать самому и лоадер и ПО к PC. Прибавит опыта, и добавит уважения к труду других, не позволите себе потом говорить "который выдрать".
Палыч
Цитата(GSK @ Apr 21 2008, 14:56) *
...меня интересует уже готовая связка из программы на компьютере и программы в микроконтроллере для загрузки в его память программы пользователя.Согласитесь, что все загрузчики разные. У некоторых есть оконный интерфейс, некоторые работают из командной строки. Неготорые быстрые, другие неочень. Одни занимают много места, другие мало и т.д.
Вы так и не огласили: зачем Вам потребовался свой загрузчик? Грузить в МК программу? - Любой SPI программатор... Какие цели Вы преследуете поместив в МК загрузчик? Чем точнее (полнее) вопрос - точнее ответ...
GSK
Загрузчик нужен для загрузки программы в микрогонтроллер по UART. (но чесно говоря предпологал это само собой разумеещееся)


P.S.
"который выдрать"
Это конечно описка. Читать - "выбрать"
А "defunct" хочу в томже ключе посоветавать не использовать "чужие" компиляторы, линковщики, програматоры, да операционную систему для компьютера написать самому.
Цитата
Это прибавит опыта, и добавит уважения к труду других

Таки "умозаключения" всегда раздражают! Если нет ответа - лучше промолчать, а не заниматься демогогией.
Для сведения: многие фирмы выпускают загрузчики и при этом не требуют писать свой!
bodja74
Самый лучший загрузчик в мире - это конечно же мой biggrin.gif biggrin.gif biggrin.gif
ProgLoader.nm.ru

Ну а целом ,трудно не согласиться ,что буты уже затачиваются уже под свою специфику ,
скорость ,камень (не обязательно АВР) ,шифрование ,драйвер и протокол для прошивки через радиоканал и т.д.
Тоесть бут - это такая вещь ,где можно проявить все свое воображение ,при перешивке камня smile.gif
Dog Pawlowa
Цитата(GSK @ Apr 21 2008, 18:33) *
Таки "умозаключения" всегда раздражают! Если нет ответа - лучше промолчать, а не заниматься демогогией.
Для сведения: многие фирмы выпускают загрузчики и при этом не требуют писать свой!

Мало ли кого что раздражает. Меня вот Ваши вопросы раздражают - не огласив критерии, спрашивать "лучший" загрузчик у народа, чтобы потом обвинить в демагогии?
Мне загрузчик студент написал за три дня, включая часть на PC, под сетевую загрузку, под разные протоколы. Ничего сложного нет, главное определиться, что нужно и зачем. Это у Вас и не получается, похоже.
defunct
Цитата(GSK @ Apr 21 2008, 17:33) *
Это конечно описка. Читать - "выбрать"

Ок, тогда вторую часть моего поста можете проигнорировать, но это нисколько не умаляет первую часть. Что мешает взять предложенный Appnote и самостоятельно сделать именно то, что надо именно вам? И польза для вас будет, и вопросы если возникнут, будут интереснее и полезнее. И их с удовольствием можно обсудить в форуме.

Ваш же текущий вопрос решается с помощью google
http://www.google.com.ua/search?hl=ru&...oader&meta=
читаете и выбираете то что больше подходит.

PS: талантом разгадывания опечаток не обладаю, ваш пост как прочитал так и понял ("выдрать", "содрать", "стырить"). ;>
GSK
Вопросы САМОСТОЯТЕЛЬНОГО написания не раз обсуждались в форуме. Плодить одинаковые темы нехочеться. Я вего лишь спросил о сравненией готовых (отлаженных и оптимизированых). Очень нехочеться спорить о том, что лучше, написанный самим за неделю или человеком, который этой темой занимаеться не один год.
Кстати о демогогии: во всё горло кричать "лучший это который написал САМ!!!" и дольше:
Цитата
Мне загрузчик студент написал ...

А на меня никто не работает! (шутка)
И еще ответы в стиле: "посмотри в гугле". Хороший ответ, универсальный. Подходит ко всем вопросам, только зачем тогда форум.....
А еще посмотреть можно в яндаксе, рамблере и т.д. (шутка)

Одно радует есть и результат:
http://avrubd.googlepages.com/avrub.htm
http://progloader.nm.ru/

Поэтому во избежание дальнейших споров немного перефразирую вопрос, не какой лучше, а кто какой знает.
А сравню сам.
Igor26
Цитата
ProgLoader.nm.ru

Молодец! Хорошая работа! beer.gif
bodja74
2Igor26
Спасибо,стараюсь когда есть настроение. yeah.gif

GSK
Вот еще ссылочка для вашей коллекции
http://www.microsyl.com/
раздел "megaload"

ЗЫ На мой взгляд Вы в самом начале неправильно поставили вопрос , с разнообразием бутов не густо ,что бы было из чего выбирать ,да и выглядело в целом на тип - "подайте-принесите" ,
вот и имеете разборки на хвосте smile3009.gif
galjoen
Цитата(Igor26 @ Apr 22 2008, 10:02) *
Молодец! Хорошая работа! beer.gif

Думаю насчёт защиты от копирования работа не очень хорошая. Это оттуда:
Цитата
Шифрование - производится шифрование прошивки по алгоритму Z=255-(X xor Y) исключающее ИЛИ с инверсией, расшифровка производится в программе загрузчика по обратному алгоритму X=(255-Z) xor Y
X- байт прошивки
Y- байт таблицы
Z- зашифрованый байт
Прошивка шифруется блоками по 256 байт,тоесть первым байтом с первым байтом таблицы,второй со вторым и т.д. ,начиная с 257-го байта прошивки опять берется первый байт из таблицы ,258-ой со вторым и т.д. Если компилятор генерирует свободную область памяти и заполняет ее значениями $FF или $00 ,и она не используется программой ,ее рекомендуется заполнить случайными значениями для более надежного шифрования. Если компилятор не генерирует свободную область памяти ,при компиляции следует в конце исходника добавить случайных данных чтобы размер прошивки был кратен 256.При соблюдении этих рекомендации прошивка будет зашифрована достаточно надежно.

Если во FLASH содержатся к.л. сообщения, или вообще что-либо выдаваемое наружу (в 95% применений это так), то такая защита ломается элементарно. Конечно это справедливо только в том случае, если основная программа не написана специальным "неломаемым" образом, но об этом тут ни слова.
defunct
Цитата(galjoen @ Apr 22 2008, 20:05) *
Думаю насчёт защиты от копирования работа не очень хорошая. Это оттуда:

Ну почему же, если следовать рекомендации и не давать повода получить 256-ти байтный ключ в явном виде, то сломать защиту будет весьма непросто.

Надеюсь прошив зашифрованную программу, бутлоадер не выдаст ее потом назад в расшифрованном виде. smile.gif
Aesthete Animus
Пусть мое сообщение опять не в тему, но не хочу плодить "лишнюю сущностей"... В общем тоже сейчас ковыряюсь с бутлоадером и пишу его на avr gcc... Все замечательно прошивается, но возникает глупый вопрос, что дальше, как выйти из бут области? Сделать простой джамп на адрес 0x0000? Но кто очистит стек? Какие в общем есть рекоммендации на этот счет?
IgorKossak
Цитата(Aesthete Animus @ Apr 23 2008, 03:20) *
... что дальше, как выйти из бут области? Сделать простой джамп на адрес 0x0000? Но кто очистит стек? Какие в общем есть рекоммендации на этот счет?

Основная программа, стартующая с адреса 0, это, как правило, совершенно самостоятельный проект. Его же c_startup и осуществит все необходимые настройки.
Igor26
Цитата
Основная программа, стартующая с адреса 0, это, как правило, совершенно самостоятельный проект. Его же c_startup и осуществит все необходимые настройки.

Тоже самое будет и с джампом на бутлоадер из основной программы.
Aesthete Animus
Цитата(IgorKossak @ Apr 23 2008, 09:11) *
Основная программа, стартующая с адреса 0, это, как правило, совершенно самостоятельный проект. Его же c_startup и осуществит все необходимые настройки.

Спасибо за разъяснение smile.gif
GSK
Уважаемые.
Большая просьба, здесь обсуждать только достоинства и недостатки.
А проблемы типа "как сделать, чтобы .....", "....как выйти из бут области", "программа, стартующая с адреса 0000" и т.д. Тоесть технические вопросы касаемые написания бутов, обсуждать в других, специально созданых для этого темах!!!!!!!
galjoen
Цитата(defunct @ Apr 23 2008, 00:09) *
Ну почему же, если следовать рекомендации и не давать повода получить 256-ти байтный ключ в явном виде, то сломать защиту будет весьма непросто.

Надеюсь прошив зашифрованную программу, бутлоадер не выдаст ее потом назад в расшифрованном виде. smile.gif

Любая защита действует только до тех пор, пока взломщику не удаётся внедрить свой исполняемый код.
Часть ключа фактически уже известна т.к. в таблице прерываний естественно поставить команды rjmp (до 8 кБайт FLASH) или jmp ( >8 кБайт FLASH), а их коды известны. Но можно сломать и без использования этой уязвимости. На месте взломщика действуем так:
Предположим объём программы 8 кбайт, а объём сообщений, которые она выдаёт из FLASH и которые мы можем прочесть, 100 байт (символов). Тогда, изменяя по 1 байту через 100, мы за 80 раз добьёмся того, что сообщение изменится (кол-во допустимых перепрограммирований 10000). По теории вероятности это произойдёт на 40й раз. Когда это произойдёт мы фактически узнаем 100 байт ключа. Дезасемблировав по 100 байт из других страниц, наверняка найдём исполняемый код, который заменяем на наш.
dimka76
Вот загрузчик с протоколом STK500, можно прям из AVR Studio шить
Flasher
Смотря для чего нужен бутлодырь. Для обновления программ в готовых изделиях у заказчиков- пользуюсь модифицированным AES бутлодырем от атмеля. Изменил прогу для того чтобы бутлодырь запрашивал программирование и 1 секунду ждал ответа от программы апдейта. Дальше идет проверка крк и запуск программы или постоянный перезапуск бутлодыря. Из основной программы сделал команду сброса устройства. Таким образом можно без проблем программировать по радиоканалу. Все делается с помощью двух .bat файлов. Для других изделий применяю выведенный ISP разъем.
artemm
а накой такой бутлоадер нужен, если его первый раз нужно программатором зашивать? Что мешает и вдальнейшем пользоваться программатором??
Flasher
Цитата(Flasher @ Apr 25 2008, 13:30) *
Смотря для чего нужен бутлодырь. Для обновления программ в готовых изделиях у заказчиков- пользуюсь модифицированным AES бутлодырем от атмеля. Изменил прогу для того чтобы бутлодырь запрашивал программирование и 1 секунду ждал ответа от программы апдейта. Дальше идет проверка крк и запуск программы или постоянный перезапуск бутлодыря. Из основной программы сделал команду сброса устройства. Таким образом можно без проблем программировать по радиоканалу. Все делается с помощью двух .bat файлов. Для других изделий применяю выведенный ISP разъем.


Совсем недавно выявил проблему в AES бутлодыре- при определенных объемах прошивки бутлодырь не правильно расшифровывает в мк последний блок. Из-за чего CRC вылетает с ошибкой. Ошибка вылазит очень редко- но становится не очень приятно- просто приходится менять размер прошивки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.