Перейти к содержанию

AVR-GCC & AVR-Toolchain-ы (неск.версий) - одновременное использование, настройка среды, Makefile

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(sunjob @ Apr 8 2018, 15:16) <{POST_SNAPBACK}>
добавил в систему 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


Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
мне мысль одна покоя не дает rolleyes.gif

т.к. "рекомендуется" atmel-toolchain-ы распаковывать в "стандартный корень", то по всей видимости он и собирается с PREFIX=/usr or PREFIX=/usr/local (точно не помню, читал где-то, то-ли в слакбилдах, то-ли еще где)

если так, то, видимо, будет не достаточно просто компилятор/линковщик запускать, нужно обязательно править под них PATH, и возможно, CX LD ...
Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Обычно они умеют находить свои либы в пути относительно исполняемого файла. То бишь, из bin:
../avr/bin/ar, и так далее.
В общем, проще попробовать, чем гадать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата
Обычно они умеют
и
Цитата
проще попробовать

обычно уже попробовал wink.gif и бинарник слопал бибилотеки из стандартных каталогов...(makefile, вроде как, без уточнений каталогов)

интересуюсь, приемущественно, надеясь на "боевых" разрабов, которые с подобной проблемой сталкивались/решали
Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Я же написал: makefile должен вызывать тулзы по полному пути. И это работает.

Если уж очень лень править makefile, то надо сделать, как посоветовали на лоре: добавить путь к нужной bin-директории в PATH (только добавлять в начало, а не в конец, как там посоветовали).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата
makefile должен вызывать тулзы по полному пути

пробовал всяко, не тупее веника biggrin.gif

Цитата
уж очень лень править makefile

совсем не лень, с огромным удовольствием, даже аппетит улучшился

Цитата
только добавлять в начало, а не в конец

ну я на это "как бы" и намекнул автору сообщения biggrin.gif

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



с первого взгляда собирается, но, видимо, надо дотошно тестировать
буду благодарен, если укажете на что обратить внимание, кроме очевидных вещей ...
Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(sunjob @ Apr 8 2018, 13:16) <{POST_SNAPBACK}>
ВОПРОС 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/

ну и в общем, вся философия заключена в вызове ключа для каждого из тестируемых тулзов )))))
Изменено пользователем _Pasha

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Я хоть и в винде сижу, но свои 5 копеек в тему вставлю sm.gif
Пользуюсь Eclipse с его встроенными автогенераторами makefile. В настройках прописываю пути к разным версиям тулчейнов, и все прекрасно собирается. Беда только с тем, что утилита avr-size от версии к версии меняет свои свойства по умолчанию и команды в комстроке, в итоге иной раз не работает, либо выдает в неудобном виде.
Эту проблему решил тупым копированием "удобной" версии во все версии тулчейна. Получилась в этом отношении каша, но все остальное достаточно удобно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата
... утилита 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 и никакой каши... wink.gif

Цитата
... автогенераторами makefile ...

авто-гераторы - это, конечно же хорошо, когда проект небольшой и все очевидно (во вс.сл. для авто-гератора wink.gif), но когда проект разрастается, начинается (у меня sm.gif) неразбериха с исходниками, каталогами, версиями итд... и я, в конечном итоге, "пришел" к своему унивесральному makefile, который все понимает так как ему надо (и его филососфия совпадает с моими взглядами на то, что, где, как и ваще все все - должно работать) да и потом, самое главное, за "все время" не "сраслась" у меня любофь с тяжелыми решениями...

п.с. правда, есть одно, которое всенепременно надо дощюпать, чего и ВАМ, желаю, весьма неплох qt-creator
Изменено пользователем sunjob

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(ARV @ Apr 12 2018, 11:50) <{POST_SNAPBACK}>
... Беда только с тем, что утилита avr-size от версии к версии меняет свои свойства по умолчанию и команды в комстроке ...


недавно разбирался с avr-size, не заметил особенностей и вариаций
раскажите подробнее об этом, если не сложно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Цитата(sunjob @ May 3 2018, 22:04) <{POST_SNAPBACK}>
недавно разбирался с avr-size, не заметил особенностей и вариаций
раскажите подробнее об этом, если не сложно
форматы вывода разные

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

спасибо, ща посмотрим что там да чаво :biggrin:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти