Форум РадиоКот https://radiokot.ru/forum/ |
|
avr-gcc makefile, несколько целей для avrdude https://radiokot.ru/forum/viewtopic.php?f=62&t=174468 |
Страница 1 из 1 |
Автор: | sunjob [ Чт дек 17, 2020 14:10:46 ] |
Заголовок сообщения: | avr-gcc makefile, несколько целей для avrdude |
добрый день имеем Код: - makefile for avr-gcc - avrdude - несколько целей для прошивки (разные программаторы; разные параметры, разные по кол-ву и настройкам) задача: настроить так, что бы при вызове цели flash - отрабатывала дефолтная цель для дудки (flash_usbasp,flash_ispmkii,flash_109), которая настраивается в начале makefile ну, и, соотв., отрабатывали все остальные "конкретные" цели (flash_usbasp,flash_ispmkii,flash_109) выкрутился рекурсивными вызовом этого-же makefile Код: FLASH_NAME ?= usbasp ###!!! дефолтный программатор FLASH_DEV ?= usb flash_usbasp : FLASH_NAME ?= usbasp flash_usbasp : FLASH_BRATE = 115200 flash_usbasp : FLASH_BCLOCK = 4 flash_usbasp : AVRDUDE_FLAG += -b $(FLASH_BRATE) -B $(FLASH_BCLOCK) flash_usbasp : flash_cmd flash_ispmkii : FLASH_NAME = avrispmkII flash_ispmkii : FLASH_BRATE = 115200 flash_ispmkii : FLASH_BCLOCK = 4 flash_ispmkii : AVRDUDE_FLAG += -b $(FLASH_BRATE) -B $(FLASH_BCLOCK) flash_ispmkii : flash_cmd flash_109 : FLASH_NAME = avr109 flash_109 : FLASH_BRATE = 9600 flash_109 : AVRDUDE_FLAG += -b $(FLASH_BRATE) flash_109 : flash_cmd ###!!! # рекурсивынй вызов, в зов-ти от цели ###!!! flash : ifeq ($(FLASH_NAME),usbasp) $(MAKE) flash_usbasp endif ifeq ($(FLASH_NAME),ispmkii) $(MAKE) flash_ispmkii endif ifeq ($(FLASH_NAME),avr109) $(MAKE) flash_avr109 endif flash_cmd: $(TARGET).hex $(AVRDUDE) -c $(FLASH_NAME) -P $(FLASH_DEV) -F $(AVRDUDE_FLAG) -U flash:w:$(OUTDIR)/$< вопрос: можно-ли красиво обойтись без рекурсии? !!! UPDATE !!! решение найдено Код: FLASH_NAME ?= name1
FLASH_NAME ?= name2 FLASH_NAME ?= name3 ... flash_name1 : FLASH_NAME = flash_name1 : ARG = ... flash_name1 : flash flash_name2 : FLASH_NAME = flash_name2 : ARG = ... flash_name2 : flash flash_name3 : FLASH_NAME = flash_name3 : ARG = ... flash_name3 : flash flash : flash_$(FLASH_NAME) $(FLASH_CMD) ... make all - сборка проекта make flash - прошивка дефолтным свистком (настраивается) make flash_$NAME - прошивка кастомным свистком |
Автор: | sunjob [ Сб дек 19, 2020 16:20:26 ] |
Заголовок сообщения: | Re: avr-gcc makefile, несколько целей для avrdude |
!!! UPDATE - УТОЧНЕНИЕ !!! упс, пацаны, косячЁк вышел, хреново протестировал :о) не получилось выкрутиться "переопределением цели", потому как у меня используется "хитрое использование цели" Код: -U flash:w:$(OUTDIR)/$< преобразуется в хреньку Код: -U flash:w:out/main.hex --> -U flash:w:out/flash_usbasp бум пилить дальше :о) ... вообщем-то можно, конечно, выкрутиться :о) пришлось красивую реализацию цели $< заменить явной елью $(TARGET).hex Код: -U flash:w:$(OUTDIR)/$<
-U flash:w:$(OUTDIR)/$(TARGET).hex |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |