
Введение
На написание данной статьи меня сподвигло практически полное отсутствие
какой либо вменяемой информации по теме бутлоадеров на русском языке, и
конкретно для чипов основанных на архитектуре AVR.
В общем то DI как то писал о вкусностях этих тулз для пользователей будь то
мобила, либо девайс в труднодоступном месте, но процесс работы самого
кода подробно не был рассмотрен.
И в один прекрасный день мне на работе дали партийное задание —
разработать систему, позволяющую дистанционно обновлять прошивку кое-
каких устройств, сами железки стоят под взрывозащитными кожухами в
шахтах на значительной глубине. Лазить туда и разбирать каждый девайс
чтобы воткнуть шлейф ISP понятное дело не самая лучшая идея, однако
устройства соединены интерфейсом RS485 это позволяет использовать
бутлоадер в проекте.
Конечно, можно взять один из OVER чем 9000 готовых бутлоадеров на Сях и
доработать напильником, переделать под задачу, но мне давно было
интересно разобраться в теме самопрошивки МК. И, думаю, не только мне,
поэтому вооружившись даташитом, и найдя скудную документацию на
утилиту AVRprog, я сел за AVR Studio изобретать велосипед — писать свой
загрузчик. Естественно на асме (под 8ми битки только на асме пишу).
Так, для разгрева, разработаем проект бутлоадера с прошивкой по RS232 и
поддержкой протокола AVRprog v1.4, а дальше можно его заточить хоть под
I2C или SPI, RS485 и т. д.
WARNING
Для того чтобы полностью вникнуть о чём тут говорится - рекомендуется к
прочтению статья DI HALT о использовании бутлоадеров.