Кроссплатформенный загрузчик для AVR

AVR
В ходе работ по усилителю для Редгерры (http://www.whitefossa.ru/files/Gerry_amplifier/) мяу написал загрузчик для заливки прошивок в МК. Вы скажете, что таких загрузчиков полно? Да, это так, но во-первых мой собственный мяу ближе, а во-вторых — он обладает кошерными свойствами:

Кроссплатформенность. Клиент загрузчика написан на Qt4, компиляется из одного исходного кода и одинаково работает на Windows (XP x32, XP x64 и Win7 x64 — проверено) и Linux. Должен работать и на других ОС, для которых существует реализация Qt.
  • Отсутствие привязки к AVR Studio.
  • Прошиваемый в МК загрузчик написан на ассемблере и занимает ~560 байт (размер загрузчика ставьте в 512 слов).
  • Прошиваемая часть по-идее должна работать на разнообразных AVR-ках без изменений.
  • Клиентская часть загрузчика содержит базу данных устройств по производителями и моделям (а-ля USB), в которой хранится информация об устройстве, размере его памяти, её организации и т.д. Таким образом, отпадает нужда в хранении этих данных на МК. На МК хранится только идентификатор производителя (3 байта), идентификатор модели (3 байта) и серийный номер (4 байта). Вы можете добавлять свои записи в БД (файл ident.sqlite), только запрашивайте у мяу идентификаторы производителя во-избежание дублирования.
  • Загрузчик принудительно делает бэкап всей прошивки (включая самого себя) и EEPROM перед началом прошивки, таким образом вы никогда не забудете о бэкапах.
  • Сброс во время перепрошивки, некошерная прошивка и тому подобные вещи теперь не страшны — сам загрузчик защищён от записи, поэтому даже в случае повреждения прошивки её можно легко восстановить.
  • СЗагрузчик, клиентская часть и документация являются свободным и открытым программным обеспечением (as beer and as speech) и распространяются под лицензией GPLv3. Таким образом вы можете свободно использовать его, модифицировать и распространять на своих устройствах (подробнее — читайте GPLv3).
  • Загрузчик может работать с любой частотой кварца и скоростью UART, которую поддерживает ваш МК — в клиентской части можно задать все параметры работы с UART.
  • Работает быстро — так как не использует таймауты при работе с портом.
  • В полном соответствии с духом и буквой GPLv3 не поддерживает биты блокировки — ваша прошивка, содержимое EEPROM и сам загрузчик всегда могут быть скачаны прямо с МК.
  • Загрузчик умеет перезагружать устройство после перепрошивки.
  • Легко настроить под ваше устройство. Откройте проект с прошиваемой частью, отредактируйте порт и ногу, на которой будет ожидаться низкий уровень для входа в загрузчик, порт и ногу, на которой будет выставляться высокий уровень, когда мы в загрузчике, тактовую частоту, скорость UART и соберите проект. Для входа в загрузчик надо установить низкий уровень на указанной ноге и дать МК Reset.
  • Проверяет правильность записи всех данных.

Недостатки:

Не поддерживает память МК больше, чем 64кбайта. Если вам нужно больше — модифицируйте протокол обмена, исходники, и пришлите всё это мяу.
Мог бы шить быстрее, так как время тратится на проверку записанных страниц.

Уже хотите качать? Запросто:

http://whitefossa.ru/bootloader/floader-0.0.1_src_noarch.tar.gz и http://whitefossa.ru/bootloader/floader-0.0.1_src_noarch.7z (содержимое идентично) — все исходники + документация.
http://whitefossa.ru/bootloader/floader-0.0.1_windows.7z — скомпилированный под Windows клиент + проект с прошиваемой частью.
http://whitefossa.ru/bootloader/floader-0.0.1_linux_x86-64.tar.gz — то-же, но для Linux.

И да, выглядит это вот-так:
Скриншот
  • +2
  • 17 января 2012, 22:06
  • fossa

Комментарии (10)

RSS свернуть / развернуть
Копипастим? :)
0
  • avatar
  • yars
  • 17 января 2012, 23:24
Reading topic… 460 words OK
Style analysis warning: #785, excess/wrong word.

Your text contains unexpected in certain places word «мяу», which ruins logic chain. Try finding proper word to avoid this warning.

Semantic analyser: warning #385, unclear logic chain.

Your text contains random word «мяу». Analysis indicated, that you could mean:

«я»,NO_HINT,«меня»,«мне».

You may try to use this to correct unexpected syntax.
+3
  • avatar
  • _YS_
  • 17 января 2012, 23:41
And «Cut» tag is not used. It is strongly recommended to use it to reduce the total amount of page.
0
да я уже устал писать… %) такое впечатление, что все исключительно писатели, и ни разу не читатели. хотя-бы коротенькой справки, которая постоянно глаза мозолит… %)
0
Блин, ну я сам люблю позанудствовать, но человек ведь старался (я не ошибаюсь?), есть за что похвалить! Полодец, автор! Пусть и мяу…
0
спасибо, попробую)
0
не смог удержаться. 560 байт для загрузчика по UART — это СЛИШКОМ МНОГО.
0
а какой можете предложить вы?
требования:
— шить флеш)) и епром у меги 48/8/88/16
— желательно своя клиентская прога(чем проще тем лучше), в крайнем случае прога из авр студии
— размер меньше или равен 560 байт
— возможность выбора входа в бут по таймеру или по кнопке
0
о боже, ещё и проект не на autotools…
0
autocrap! Что может быть лучше проекта не на autotools? Мало что, на самом деле.
Кусок говна этот autotools, который не рещает возложенной на него задачи ни разу и только под ногами путается. В результате, если софтина была отрелизена пару лет назад — то и все auto*-скрипты у неё древние как говно мамонта и легко могут не работать на новых системах только потому что у системы версия стала двухзначная, а скрипты на этом ломаются, потому что когда их писали (авторы auto*, а не автор софтины причём) у них хватило мозгов написать соответствующие маски. И это только то, что на поверхности.
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.