Добрый вечер! Есть маленький вопросик: можно ли использовать загрузчик ардуино с прошивками на Си (я понимаю, что можно, ибо есть куча программ на основе avrdude, и сам пользовался одной, но вопрос не в этом): не будет ли каких-нибудь "подводных камней" при этом походе? Или, если Вам не сложно, отправьте меня на изучение более подходящего и проверенного для этого загрузчика (через UART)....... если в нем еще будет и возможность выбора: стереть или нет EEPROM, то это будет совсем шикарно Заранее спасибо!
Что по вашему есть прошивки на Си? Они все в машинных кодах, а написаны могут быть хоть на Бейсике. И работать прошивка будет хоть с бутлоадером, хоть нет (если она работоспособна, конечно). Функция БЛ в том, чтобы загрузить прошивку через UART, а не сугубо через программатор, т.к. это проще, а в ряде случаев и вовсе незаменимо. Но иногда БЛ не нужен и даже вреден, ибо отжирает память, например в готовых изделиях, где прошивка не планирует меняеться столетиями. Вы то какую цель преследуете? Исследовательскую или практическую?
Тоже заинтересовала данная тема, а именно, можно ли как то изменить бутлоадер, что бы Дуня загружалась быстрее ?
Ну естественно нет, но хотелось бы ускорить загрузку. Как я понял, даже если изменить бутлоадер, то зашить его получится только с помощью программатора ?
Под загрузкой вы что имеете ввиду? Запуск скетча при включении платы или скорость записи нового скетча на плату?
А какая у вас задержка при включении? Микроконтроллер обычно ждет несколько миллисекунд команды на зашивку после RESETа, если команда не пришла, то начинает выполняться программа из FLASH.
Текущий бутлоадер заметно тормозит загрузку только при перезагрузке контроллера (например, по нажатию кнопки RESET). После перезагрузки по RESET бутлоадер ждёт секунду (watchdog так настроен) и если в последовательный порт ничего не посылать, то контроллер уходит в перезагрузку. И при следующей загрузке бутлоадер сразу передаст управление основной программе. Да, только с помощью программатора. Но если у Вас есть программатор, то и бутлоадер может не понадобиться.
Бутлодер duemilanove на голом контроллере atmega328p ждет секунду-две, прежде чем запустить основую программу.... Зато кнопку reset спокойно успеваешь нажать.
А есть ли особенности какие-от в бутлодере для ардуино, которые способствовали выбору именного его для этой платформы?
Что значит "выбору" -- бутлоадеры писались под Arduino'ы. Исходники бутлоадеров можно найти в каталоге 'hardware/arduino/avr/bootloaders/' (это путь относительно каталога, в который установлена Arduino IDE). Для Arduino UNO используется бутлоадер 'optiboot' ('hardware/arduino/avr/bootloaders/optiboot/'). Можно поправить исходники и собрать свои бутлоадеры, либо написать "с нуля". Как говориться -- "всё в Ваших руках"...
есть инструкция по сборке оптибутов https://github.com/Optiboot/optiboot/wiki/CompilingOptiboot там рекомендуется использовать мейкфайл и соответственно запускать компиляцию командой make <options> <platform> Но я так понимаю, что в виндоусе это не работает и надо как-то извращаться чтобы запустить мейкфайл? А если использовать авр-студию и там поставить галочку "использовать внешний мейкфайл", то как тогда задать параметры <options> и <platform> ? и вообще, если кто-то шарит - объясните - как правильно скомпилировать свой оптибут в виндоусе?
Извращаться надо и много, это Вам не linux, где всё из коробки работает. Но заставить работать 'make' можно -- MinGW и MSys (http://www.mingw.org/) Вам в помощь.
ага, спасибо. вот еще нагуглил про это http://we.easyelectronics.ru/Papandopala/kak-zapustit-makefile-pod-windows.html только неочень понятно - будут ли с этим методом работать параметры <options> и <platform> А есть какие-то нормальные способы через авр-студию скомпилировать этот оптибут?
не надо извращаться, make-файлы не запускаются, ибо они не исполняемые Чтобы воспользоваться сборкой с помощью make-файлов. нужно иметь в системе утилиту make. В линуксе. как уже сказали выше/ make есть "мз коробки". поэтому там все проще. Но make можно установить и в винду. Бутлоадеры не компилировал, а прошивку под STM32 собирал при помощи make под виндой- все получилось.
а почему нет-то? В мэйк-файлах этих опций сотни, и все они работают - иначе вообще ничего не собиралось бы... Неужели никогда ничего из исходников не собирали? - там обязательно make есть
а есть какой-то стопроцентный пошаговый алгоритм действий? типа такого http://we.easyelectronics.ru/Papandopala/kak-zapustit-makefile-pod-windows.html только попроще и понадежнее, а то тут мало того что две программы устанавливать надо, так еще и все эти прописи путей не внушают доверия и не факт что для моего случая подойдут.