Страница 1 из 1

AVR-GCC & AVR-Toolchain-ы (неск.версий) makefile

Добавлено: Вс апр 08, 2018 13:18:50
sunjob
добрый день

в системе установлен стандартный пакет 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 в вакууме"

НЕ ВОПРОС:
- можно просто "пофилософствовать по теме", возможно ваши мысли пригодятся :о)

спасибо
...

slackware-xx.x (avr-xxx: стандартный набор slackBuild от sl14.2)
https://slackbuilds.org/

avr-toolchains
http://www.microchip.com/avr-support/av ... mpilers%29

Re: AVR-GCC & AVR-Toolchain-ы (неск.версий) makefile

Добавлено: Вс апр 08, 2018 14:17:40
JackSmith
> возможно ли использовать бинарные/готовые сборки avr-Toolchains в нестандартных PREFIX-каталогах (как у меня)?
проверьте все бинарники и библиотеки вашего тулчейна утилитой ldd на предмет отсутствующих зависимостей.
> если можно (вопрос 1), то какие переменные окружения надо настраивать? (CXX LD ... etc)
лучше не надо.
> тоже самое, применительно к рабочему makefile?
в makefile конечно придется прописывать пути к тем версиям компиляторов, которые вы планируете использовать
> можно просто "пофилософствовать по теме", возможно ваши мысли пригодятся :о)
стандартного тулчейнеа с SBo вполне было бы достаточно.

Re: AVR-GCC & AVR-Toolchain-ы (неск.версий) makefile

Добавлено: Вс апр 08, 2018 15:10:28
sunjob
проверьте все бинарники и библиотеки вашего тулчейна утилитой ldd на предмет отсутствующих зависимостей.
ну ... :о) это совсем лишнее... если бы были поломаны зависимости, то уж точно на профилирующих форумах были-бы упоминания... :о)
как совет, да, если что-то пойдет не так, то, возможно, будет не лишним пробежаться по зависимостям
лучше не надо.
почему? какие аргументы?
дерево будет лежать в нестандартных путях, а atmel-avr-тулзы изначально собирались на стандарнтые пути (и я даже, сомнемавюсь что на относительные, ск. всего сборка расчитатна на полные пути, от корня, но это мое мнение, могу ошибаться)

немного уточню, возможно, не совсем понятно обьяснил в топике

- в системе установлены стандартные пакеты (по умолчанию) - avr-xxx
- добавляю в кастомные каталоги с бинарными сборками atmel-avr-toolchain-s
- нужно заставить "прозрачно" работать с любой нужной версией и со стандартной и с любой из atmel
- makefile (особенности настройки)

Re: AVR-GCC & AVR-Toolchain-ы (неск.версий) makefile

Добавлено: Вс апр 08, 2018 16:26:14
viiv
sunjob, у меня "зоопарк" tools-ов. Каждый раз при переходе на нувую версию собираю из исходников со своим prefix-ом, а старые tools-ы не удаляю (на всякий случай оставляю для старых проектов, если требуется исправить ошибку или что-то доработать). Никаких проблем.

Что мешает Вам собрать необходимые tools-ы с нужным префиксом и гарантированно не иметь проблем?

Re: AVR-GCC & AVR-Toolchain-ы (неск.версий) makefile

Добавлено: Вс апр 08, 2018 16:50:31
sunjob
to viiv

немного не по теме... давайте разбираться

надо
1. родная бинарная сборка avr-toolcahin

2. совместное использование ... и установка в нестандартный PREFIX

Код: Выделить всё

/usr/avr-xxx // avr-xxx standart package & PREFIX
or
/usr/local/xxx{--//--}

{blah-blah-blah}/avr/x.x.1 // atmel-avr-xxx non-standart package & PREFIX
{blah-blah-blah}/avr/x.x.2
{blah-blah-blah}/avr/x.x.3
эта схема, надеюсь, понятна?! вот в этом ключе и будем дальше продолжать царапаться
плюс к этому - makefile

... по поводу "ваших сборок" - :)

Код: Выделить всё

у меня "зоопарк" tools-ов
у меня в 10 раз больше :)) давай мериться ...? :beer:
Каждый раз при переходе на нувую версию собираю из исходников со своим prefix-ом
это-же, мур-р-р, ясен-пень, будет проще настраивать, потому как большинство связей будет уже по умолчанию "то, че надо"...
но это сборка из исходников, в данном контексте - не катит

спасибо

зы
- в системе установлены стандартные пакеты (по умолчанию) - avr-xxx
- добавляю в кастомные каталоги с бинарными сборками atmel-avr-toolchain-s
- нужно заставить "прозрачно" работать с любой нужной версией и со стандартной и с любой из atmel
- 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
с первого взгляда собирается, но, видимо, надо дотошно тестировать
буду благодарен, если укажете на что обратить внимание, кроме очевидных вещей ...