Наверное у всех уже роботы бутлоадерами оборудованы Вот и мне надоело программатор подключать/отключать. Да и "таргет-группа" не одобрит такую мороку.
Бутлоадер из примеров BASCOM-а демо версией не скомпилился.
Начал с твоим разбираться. Прошиваю AVRDude. Сначала установил в опции avr109, но получил ошибку. Теперь использую avr911.
Для интересующихся:
Минибот подключен через USB2UART переходник, представленный на компьютере как COM4
На компе установлена WinAVR, в соств которого входит утилита AVRDude.
В папке с проектами создается командный файл файл bl.cmd
- Код: Выделить всё • Развернуть
@copy %1 tmp.hex
@echo Reset of the Minibot and during 1 second...
@pause
@echo S >com4
@C:\WinAVR\bin\avrdude.exe -p m32 -P com4 -b 9600 -c avr911 -u -U flash:w:tmp.hex
@pause
пояснения:
командный файл получает параметром имя файла прошивки (hex-файла). Затем он его копирует в промежуточный файл tmp.hex - это для решения проблемы длинных имен.
@copy %1 tmp.hex
затем исполнение останавливается: нужно нажать на роботе Reset - запустится бутлоадер, который 1 секунду будет ожидать символ S из UART-а, чтобы начать программирования, в ином случае просто запускается существующая программа. Вот в течение этой секунды и нужно нажать на любую клавишу, чтобы выполнились следующие команды:
посылаем символ S в COM4
@echo S >com4
запускаем AVRDude
@C:\WinAVR\bin\avrdude.exe -p m32 -P com4 -b 9600 -c avr911 -u -U flash:w:tmp.hex
получаем на экране
останавливаемся, если интересно (не обязательно)
Для прошивки робота бутлоадером из BASCOM-а настраивается "внешний программатор"
Menu\Options\Programmer
Немного напрягает то, что нужно торопиться за 1 секунду нажать кнопку.
Интересно как в Мниботе 2 это реализовано