Tag Archives: Bootloader

Создание Bootloader’a

Введение
На написание данной статьи меня сподвигло практически полное отсутствие какой либо вменяемой информации по теме бутлоадеров на русском языке, и конкретно для чипов основанных на архитектуре AVR.

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

И в один прекрасный день мне на работе дали партийное задание — разработать систему позволяющую дистанционно обновлять прошивку кое-каких устройств, сами железки стоят под взрывозащитными кожухами в шахтах на значительной глубине. Лазить туда и разбирать каждый девайс чтобы воткнуть шлейф ISP понятное дело не самая лучшая идея, однако устройства соединены интерфейсом RS485 это позволяет использовать бутлоадер в проекте.

Конечно можно взять один из OVER чем 9000 готовых бутлоадеров на Сях и доработать напильником, переделать под задачу, но мне давно было интересно разобраться в теме самопрошивки МК. И, думаю, не только мне, поэтому вооружившись даташитом и найдя скудную документацию на утилиту AVRprog я сел за AVR Studio изобетать велосипед — писать свой загрузчик. Естественно на асме (под 8ми битки только на асме пишу).

Так, для разгрева, разработаем проект бутлоадера с прошивкой по RS232 и поддержкой протокола AVRprog v1.4, а дальше можно его заточить хоть под I2C или SPI, RS485 и т. д.
(далее…)

Read More »

Прошивка PinboardProg для превращения демоплаты PinBoard 1.0 в ISP программатор

Хай Pinboard сообщество! Помнится я обещал, что будет прошивка позволяющая превратить демоплату Pinboard 1.0 в программатор для прошивки других МК. Пацан сказал — пацан сделал :)
 

Итак, вот две прошивки. Для плат на базе Atmega16 и Atmega32. Тактовая 8 МГц (дефолтная настройка).
16_PinboardPROG.hex
32_PinboardPROG.hex

 

Далее как обычно в картинках. (далее…)

Read More »

AVR. Учебный Курс. Использование Bootloader’а

Почти все микроконтроллеры серии Mega с памятью от 8КБ могут прошиваться через бутлоадер. Фишка удобная и применяется довольно часто, однако подробного мануала как работать с бутлоадером на AVR я в свое время не нашел и пришлось разбираться самостоятельно. С той поры мало что изменилось. Пора бы дать подробное описание как выбрать, скомпилировать, прошить и в дальнейшем использовать bootloader для AVR.
 

Ликбез
Что же это такое бут и с чем его едят. BootLoader это всего лишь небольшая программка которая сидит в специальной области памяти микроконтроллера и слушает какой-либо интерфейс. Обычно это UART, но бывает и SPI, USB и даже SoftUSB бутлоадеры.
 

При загрузке контроллера управление первым делом передается бутлоадеру и он проверяет есть ли условие для запуска. Условие может быть любым, но обычно это либо наличие спец байта по интерфейсу, либо наличие нужного логического уровня на выбранной ножке контроллера, сигнализирующее о том, что мы хотим обратиться к буту прошивку. Если условие есть — то бутлоадер может, например, принять прошивку по UART‘у и сам прошить ее во флеш. Или, наоборот, считать прошивку из флеша и выдать через UART, считать или записать EEPROM, подрыгать ножками. Да что угодно. Но обычно все же с помощью бута осуществляют прошивку микроконтроллера без применения спец программатора.
 

Если разрешающего условия при старте нет, то бут завершает свою работу и передает управление основной программе.
 

(далее…)

Read More »