8.16.2010

Как получить .hex из Arduino?

начиная с версии 0018, в Arduino IDE нет возможности сохранять .hex файл в папку с скетчем. Но не стоит отчаиваться - выход естественно есть)


Запускаем нашу Arduino IDE, и открываем наш "любимый" скетч, нажимаем Verify:

Дальше, открываем проводник и пишем там %temp%\ и нажимаем Enter:



Находим там папки с именами buildXXXXXXXXXXXXXXX.tmp:


В каждой из этих папок будет куча файлов, нас интересует файл Blink.cpp.hex - это и есть наш скомпилированный Blink, который можно заливать на микросхему (или, скормить Proteus-у ))))

Примечание
Когда вы производите изменения с исходным текстом скетча, то папка buildXXXXXXXXX.tmp очищается автоматически, и вам надо заного нажать Verify, чтобы в ней появились файлы. На самом деле, даже удобно, если сделали изменения, но не сохранили - протеус, к примеру, начинает сразу кричать вопить, мол, файла то нету, куда файл дели) 

Arduino на atmega48 и atmega88

Начну цикл статей с пособия, как программировать на Arduino-платформе, но в качестве микроконтроллера использовать atmega48 (да-да, это возможно). Основывается это на том факте, что различия atmega48 от atmega328 только лишь в количестве ОЗУ и ПЗУ

На самом деле, это очень просто.

Порядок действий:


1) откройте файл arduino-0018/hardware/arduino/boards.txt и добавьте в его конец что-то вроде этого:

######################################################

atmega48.name=ATMega48
atmega48.upload.using=avrisp
atmega48.upload.maximum_size=4094
atmega48.upload.speed=38400

atmega48.bootloader.low_fuses=0xE2
atmega48.bootloader.high_fuses=0xDF
atmega48.bootloader.extended_fuses=0xFF
atmega48.bootloader.path=atmega
atmega48.bootloader.file=atmega48.hex
atmega48.bootloader.unlock_bits=0x3F
atmega48.bootloader.lock_bits=0x0F

atmega48.build.mcu=atmega48
atmega48.build.f_cpu=8000000L
atmega48.build.core=arduino


2) Подсоедините AVCC микроконтроллера к плюсу питания (используется для analogRead как analog reference)
3) Поставьте конденсатор примерно в 0,1мкФ между AREF и землёй
4) enjoy!


А теперь о плохом %)
доступно тока 4кб памяти, что накладывает сильные ограничения на размер скетча (при использовании bootloader-а - всего 2кб), так что, скорей всего, грузить скетчи на плату вам придёться с помощью программатора (либо, имея под рукой другую arduino, можно прошить микроконтроллер с помощью ICSP, благо, в интернете более чем достаточно статей об этом)




Как получить .hex файл из скетча для заливки на МК, я описал в отдельной статье:
http://bsideup.blogspot.com/2010/08/hex-arduino.html