реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> AVR-GCC & AVR-Toolchain-ы (неск.версий) - одновременное использование, настройка среды, Makefile
sunjob
сообщение Apr 8 2018, 10:16
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



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
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2018, 16:03
Сообщение #2


фанат дивана
******

Группа: Свой
Сообщений: 3 379
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(sunjob @ Apr 8 2018, 15:16) *
добавил в систему 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




--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sunjob
сообщение Apr 8 2018, 18:29
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



мне мысль одна покоя не дает rolleyes.gif

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

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

Сообщение отредактировал sunjob - Apr 8 2018, 18:30
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2018, 18:49
Сообщение #4


фанат дивана
******

Группа: Свой
Сообщений: 3 379
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sunjob
сообщение Apr 8 2018, 20:08
Сообщение #5


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



Цитата
Обычно они умеют
и
Цитата
проще попробовать

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

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

Сообщение отредактировал sunjob - Apr 8 2018, 20:11
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 8 2018, 20:20
Сообщение #6


фанат дивана
******

Группа: Свой
Сообщений: 3 379
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Я же написал: makefile должен вызывать тулзы по полному пути. И это работает.

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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
sunjob
сообщение Apr 8 2018, 22:23
Сообщение #7


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



Цитата
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 - Apr 9 2018, 05:39
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Apr 9 2018, 04:52
Сообщение #8


;
******

Группа: Участник
Сообщений: 5 645
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(sunjob @ Apr 8 2018, 13:16) *
ВОПРОС 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 - Apr 9 2018, 04:52
Go to the top of the page
 
+Quote Post
sunjob
сообщение Apr 10 2018, 01:47
Сообщение #9


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



грант мерси!
Go to the top of the page
 
+Quote Post
ARV
сообщение Apr 12 2018, 10:50
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 136
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



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


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
sunjob
сообщение Apr 19 2018, 12:27
Сообщение #11


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



Цитата
... утилита 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 - Apr 19 2018, 12:35
Go to the top of the page
 
+Quote Post
sunjob
сообщение May 3 2018, 19:04
Сообщение #12


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



Цитата(ARV @ Apr 12 2018, 11:50) *
... Беда только с тем, что утилита avr-size от версии к версии меняет свои свойства по умолчанию и команды в комстроке ...


недавно разбирался с avr-size, не заметил особенностей и вариаций
раскажите подробнее об этом, если не сложно
Go to the top of the page
 
+Quote Post
ARV
сообщение May 8 2018, 16:32
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 136
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Цитата(sunjob @ May 3 2018, 22:04) *
недавно разбирался с avr-size, не заметил особенностей и вариаций
раскажите подробнее об этом, если не сложно
форматы вывода разные


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
sunjob
сообщение May 25 2018, 01:13
Сообщение #14


Участник
*

Группа: Участник
Сообщений: 29
Регистрация: 13-12-17
Пользователь №: 100 639



спасибо, ща посмотрим что там да чаво biggrin.gif
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th June 2018 - 15:14
Рейтинг@Mail.ru


Страница сгенерированна за 0.00936 секунд с 7
ELECTRONIX ©2004-2016