Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Генерация bin файла у AVR Studio 5
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > MCS51, AVR, PIC, STM8, 8bit
promelectronshchic
Добрый день. Может ли кто-нибудь подсказать, как с помощью AVR Studio 5 получить bin файл под выбранный микроконтроллер?
demiurg_spb
Прописать правило в Makefile для

# Output format. (can be srec, ihex, binary)
FORMAT = binary
avr-objcopy $(FORMAT)

или при помощи утилиты srecord
promelectronshchic
Ок, спасибо.
Twen
Кстати, а куда эту строчку то добавлять ? У новой студии 5.1 таких пунктов нету. Я прописую у makefile, который находится у меня у папке Debug, после компиляции он переписывается по своему...
_Артём_
Цитата(Twen @ Apr 17 2012, 15:51) *
Кстати, а куда эту строчку то добавлять ? У новой студии 5.1 таких пунктов нету. Я прописую у makefile, который находится у меня у папке Debug, после компиляции он переписывается по своему...

Нужно выбрать в настройках проекта "Use external makefile"
Twen
Понял, а потом мне нужно скопировать то что был makefile+ добавить вот это ?

# Output format. (can be srec, ihex, binary)
FORMAT = binary
avr-objcopy $(FORMAT)

А в какую строку или не важно?
demiurg_spb
Ещё как важно.
Ищите и читайте доку на make.
Twen
ясно...
demiurg_spb
Вы можете взять пример Makefile из WinAVR там всё внятно прокомментировано.
Twen
Да, я так и сделал, WinAVR скомпилил то что нужно...интересно, что когда у WinAVR изменяю выходной файл hex или bin, на выходе не меняется расширение файла, всегда hex )), но главное что в нем меняется содержимое).
Спасибо.
mdmitry
Цитата(Twen @ Apr 18 2012, 11:29) *
Да, я так и сделал, WinAVR скомпилил то что нужно...интересно, что когда у WinAVR изменяю выходной файл hex или bin, на выходе не меняется расширение файла, всегда hex )), но главное что в нем меняется содержимое).
Спасибо.

Так задайте в правилах makefile необходимое расширение. Есть несколько способов добиться этого (явное задание имени или автоматическая генерация). Если выложите файл, то способ можно конкретизировать.
Twen
Я прикрепил make файл, настройки для ATtiny48.
Я поменял расширение, чтобы можно было загрузить файл.
mdmitry
Цитата(Twen @ Apr 19 2012, 22:37) *
Я прикрепил make файл, настройки для ATtiny48.

возможно варианты:
I.
1. добавить
Код
bin: $(TARGET).bin

2. изменить и добавить
Код
%.hex: %.elf
    @echo
    @echo $(MSG_FLASH) $@
    $(OBJCOPY) -O  ihex -R .eeprom -R .fuse -R .lock $< $@


Код
%.bin: %.elf
    @echo
    @echo $(MSG_FLASH) $@
    $(OBJCOPY) -O  binary -R .eeprom -R .fuse -R .lock $< $@


3. использование
Код
build: elf hex eep lss sym

или
Код
build: elf bin eep lss sym


Это для основной прошивки. Аналогично можно сделать и формат для eeprom. В этом случае FORMAT вообще не используется.
II.
Вид выхода задается в FORMAT, но придется использовать условные конструкции.
1. сделать 1. и 2. из I.
2.

Код
ifeq ($(FORMAT),binary)
    OUT= binary
else
ifeq ($(FORMAT),ihex)
    OUT= hex
else
    OUT    =
endif
endif

3.
Код
build: elf $(OUT) eep lss sym

Аналогично для eeprom, задать какой-нибудь OUTEEP.

III. можно придумать ещё что-то

Я не проверял работоспособность. laughing.gif Эти идеи часто используются в makefile. Посмотрите описание утилиты gnu make
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.