sunjob 0 Posted April 8, 2018 · Report post AVR-GCC & AVR-Toolchain-ы (неск.версий) - одновременное использование, настройка среды, Makefile добрый день в системе установлен стандартный пакет avr-xxx : avr-binutils, avr-gcc, avr-gdb, avr-libc тестовый проект с makefile - собирается (используется стандартное develop-окружение, без настроек) добавил в систему avr-Toolchains, распаковал в свои каталоги (использовались готовые/собранные bin-архивы, с уже собранными тулзами) ~/dev/bin/avr/3.4.2/* ~/dev/bin/avr/3.4.3/* ~/dev/bin/avr/3.5.4/* ВОПРОС 1: - возможно ли использовать бинарные/готовые сборки avr-Toolchains в нестандартных PREFIX-каталогах (как у меня)? - что-бы не было коллизий/пересечений со стандартным набором avr-xxx пакетов (стандартные каталоги) - если "готовые сборки" - нельзя использовать в нестандартных путях, без особых извращений, то можно не объяснять "почему" :о) ВОПРОС 2: - если можно (вопрос 1), то какие переменные окружения надо настраивать? (CXX LD ... etc) - кроме окружения, что ни-будь еще надо настраивать? ВОПРОС 3: - тоже самое, применительно к рабочему makefile? - мейкфайл в данном случае "псевдо-стандартый", можно найте в инете, переменные develop-окружения не менялись, все по умолчанию, т.е. ни какие каталоги/инклуды не прописывались, поэтому - рассматривать будем "сферический makefile в вакууме" ВОПРОС 4: - можно просто "пофилософствовать по теме", возможно ваши мысли пригодятся :о) спасибо ... slackware-xx.x (avr-xxx: стандартный набор slackBuild от sl14.2) https://slackbuilds.org/ avr-toolchains http://www.microchip.com/avr-support/avr-a...8c-compilers%29 Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AHTOXA 0 Posted April 8, 2018 · Report post добавил в систему avr-Toolchains, распаковал в свои каталоги (использовались готовые/собранные bin-архивы, с уже собранными тулзами) ~/dev/bin/avr/3.4.2/* ~/dev/bin/avr/3.4.3/* ~/dev/bin/avr/3.5.4/* ВОПРОС 1: - возможно ли использовать бинарные/готовые сборки avr-Toolchains в нестандартных PREFIX-каталогах (как у меня)? - что-бы не было коллизий/пересечений со стандартным набором avr-xxx пакетов (стандартные каталоги) По-моему, достаточно просто указать в makefile полный путь к компилятору/линкеру, и всё заработает. Типа: TOOL = /home/user/dev/bin/avr/3.4.2/bin/avr- CC := $(TOOL)gcc AS := $(TOOL)gcc -x assembler-with-cpp BIN := $(TOOL)objcopy OBJCOPY := $(TOOL)objcopy OBJDUMP := $(TOOL)objdump SIZE := $(TOOL)size Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted April 8, 2018 (edited) · Report post мне мысль одна покоя не дает :rolleyes: т.к. "рекомендуется" atmel-toolchain-ы распаковывать в "стандартный корень", то по всей видимости он и собирается с PREFIX=/usr or PREFIX=/usr/local (точно не помню, читал где-то, то-ли в слакбилдах, то-ли еще где) если так, то, видимо, будет не достаточно просто компилятор/линковщик запускать, нужно обязательно править под них PATH, и возможно, CX LD ... Edited April 8, 2018 by sunjob Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AHTOXA 0 Posted April 8, 2018 · Report post Обычно они умеют находить свои либы в пути относительно исполняемого файла. То бишь, из bin: ../avr/bin/ar, и так далее. В общем, проще попробовать, чем гадать. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted April 8, 2018 (edited) · Report post Обычно они умеют и проще попробовать обычно уже попробовал ;) и бинарник слопал бибилотеки из стандартных каталогов...(makefile, вроде как, без уточнений каталогов) интересуюсь, приемущественно, надеясь на "боевых" разрабов, которые с подобной проблемой сталкивались/решали Edited April 8, 2018 by sunjob Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
AHTOXA 0 Posted April 8, 2018 · Report post Я же написал: makefile должен вызывать тулзы по полному пути. И это работает. Если уж очень лень править makefile, то надо сделать, как посоветовали на лоре: добавить путь к нужной bin-директории в PATH (только добавлять в начало, а не в конец, как там посоветовали). Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted April 8, 2018 (edited) · Report post makefile должен вызывать тулзы по полному пути пробовал всяко, не тупее веника уж очень лень править makefile совсем не лень, с огромным удовольствием, даже аппетит улучшился только добавлять в начало, а не в конец ну я на это "как бы" и намекнул автору сообщения UPDATE рихтанул makefile ifeq ($(AVR_VER), DEF) ### Default PREFIX AVR = /usr else ### Custom ATMEGA PREFIX AVR = ~/dev/bin/avr/$(AVR_VER) PATH = /bin:$(AVR)/bin:$(AVR)/avr/bin CPPFLAGS_X = -I$(AVR)/include -I$(AVR)/i686-pc-linux-gnu/avr/include -I$(AVR)/avr/include LDFLAGS_ X = -L$(AVR)/lib -L$(AVR)/avr/lib -L$(AVR)/i686-pc-linux-gnu/avr/lib endif ... CPPFLAGS += $(CPPFLAGS_X) LDFLAGS += $(LDFLAGS_X) ... CC = $(AVR)/bin/avr-gcc OBJCOPY = $(AVR)/bin/avr-objcopy OBJDUMP = $(AVR)/bin/avr-objdump SIZE = $(AVR)/bin/avr-size NM = $(AVR)/bin/avr-nm с первого взгляда собирается, но, видимо, надо дотошно тестировать буду благодарен, если укажете на что обратить внимание, кроме очевидных вещей ... Edited April 9, 2018 by sunjob Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
_Pasha 0 Posted April 9, 2018 (edited) · Report post ВОПРОС 4: - можно просто "пофилософствовать по теме", возможно ваши мысли пригодятся :о) ~$ avr-gcc -print-search-dirs install: /usr/lib/gcc/avr/4.9.2/ programs: =/usr/lib/gcc/avr/4.9.2/:/usr/lib/gcc/avr/4.9.2/:/usr/lib/gcc/avr/:/usr/lib/gcc/avr/4.9.2/:/usr/lib/gcc/avr/:/usr/lib/gcc/avr/4.9.2/../../../avr/bin/avr/4.9.2/:/usr/lib/gcc/avr/4.9.2/../../../avr/bin/ libraries: =/usr/lib/gcc/avr/4.9.2/:/usr/lib/gcc/avr/4.9.2/../../../avr/lib/avr/4.9.2/:/usr/lib/gcc/avr/4.9.2/../../../avr/lib/ ну и в общем, вся философия заключена в вызове ключа для каждого из тестируемых тулзов ))))) Edited April 9, 2018 by _Pasha Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted April 10, 2018 · Report post грант мерси! Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ARV 0 Posted April 12, 2018 · Report post Я хоть и в винде сижу, но свои 5 копеек в тему вставлю :) Пользуюсь Eclipse с его встроенными автогенераторами makefile. В настройках прописываю пути к разным версиям тулчейнов, и все прекрасно собирается. Беда только с тем, что утилита avr-size от версии к версии меняет свои свойства по умолчанию и команды в комстроке, в итоге иной раз не работает, либо выдает в неудобном виде. Эту проблему решил тупым копированием "удобной" версии во все версии тулчейна. Получилась в этом отношении каша, но все остальное достаточно удобно. Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted April 19, 2018 (edited) · Report post ... утилита avr-size от версии к версии меняет свои свойства ... для этого в makefile есть очень удобное "макроопределение" команд CC = $(AVR)/bin/avr-gcc CPP = $(AVR)/bin/avr-g++ OBJCOPY = $(AVR)/bin/avr-objcopy OBJDUMP = $(AVR)/bin/avr-objdump SIZE = $(AVR)/bin/avr-size NM = $(AVR)/bin/avr-nm MKDIR = mkdir -p REMOVE = rm -fr COPY = cp WINSHELL = cmd далее, по вкусу дорабатываем напильником, и навсегда забываем про "особенности нациоанальной охоты" с разными версиями avr-size и никакой каши... ;) ... автогенераторами makefile ... авто-гераторы - это, конечно же хорошо, когда проект небольшой и все очевидно (во вс.сл. для авто-гератора ;)), но когда проект разрастается, начинается (у меня :)) неразбериха с исходниками, каталогами, версиями итд... и я, в конечном итоге, "пришел" к своему унивесральному makefile, который все понимает так как ему надо (и его филососфия совпадает с моими взглядами на то, что, где, как и ваще все все - должно работать) да и потом, самое главное, за "все время" не "сраслась" у меня любофь с тяжелыми решениями... п.с. правда, есть одно, которое всенепременно надо дощюпать, чего и ВАМ, желаю, весьма неплох qt-creator Edited April 19, 2018 by sunjob Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted May 3, 2018 · Report post ... Беда только с тем, что утилита avr-size от версии к версии меняет свои свойства по умолчанию и команды в комстроке ... недавно разбирался с avr-size, не заметил особенностей и вариаций раскажите подробнее об этом, если не сложно Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
ARV 0 Posted May 8, 2018 · Report post недавно разбирался с avr-size, не заметил особенностей и вариаций раскажите подробнее об этом, если не сложно форматы вывода разные Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
sunjob 0 Posted May 25, 2018 · Report post спасибо, ща посмотрим что там да чаво :biggrin: Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...