Например TDA7294

Форум РадиоКот • Просмотр темы - avr-gcc makefile, несколько целей для avrdude
Форум РадиоКот
Здесь можно немножко помяукать :)



Текущее время: Ср апр 14, 2021 22:02:12

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: avr-gcc makefile, несколько целей для avrdude
СообщениеДобавлено: Чт дек 17, 2020 14:10:46 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 15
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 384
Рейтинг сообщения: 0
добрый день

имеем
Код:
- 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 - прошивка кастомным свистком

_________________
Енот - это кот, только инкогнито!


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: avr-gcc makefile, несколько целей для avrdude
СообщениеДобавлено: Сб дек 19, 2020 16:20:26 
Потрогал лапой паяльник
Аватар пользователя

Карма: 1
Рейтинг сообщений: 15
Зарегистрирован: Ср дек 08, 2010 19:03:17
Сообщений: 384
Рейтинг сообщения: 0
!!! 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

_________________
Енот - это кот, только инкогнито!


Вернуться наверх
 

JLCPCB, всего $2 за прототип печатной платы! Цвет - любой!

Отличное качество, подтвержденное более чем 600,000 пользователей! Более 10,000 заказов в день.

Зарегистрируйтесь и получите два купона по 5$ каждый:https://jlcpcb.com/cwc

Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: oleg110592, SfS и гости: 11


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y