Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сборка среды программирования под Cortex A9-A7
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
mantech
Приветствую.

Собственно вопрос - может у кого есть методика сборки под указанные ОС системы, включающей в себя компилятор, ИДЕ, еще что там будет нужно, чтоб сделать собственный загрузчик для камней на базе ядра кортекс А7 или А9?

Вопросов по программированию нет, все это я уже давно делал в ИАРе, но клиент просит, чтоб было сделано на свободно распространяемом софте.

Большая просьба не отсылать к гуглу и пр, кто в теме, тот знает сколько недель нужно танцевать с бубном, чтоб все это настроить для нормальной работы.

Настройка отладки(GDB и пр.) не нужна от слова вообще.

Буду очень признателен за все советы и ссылки откуда чего скачать...
scifi
Linaro?
Aner
так скажи что за камень, может найдется народ, дадут исходники загрузчика под винду.
mantech
Цитата(Aner @ Jan 26 2018, 13:17) *
так скажи что за камень, может найдется народ, дадут исходники загрузчика под винду.


Мне не надо исходники, они у меня есть, просто проект под ИАР, но заказчик у себя не будет ставить софт стоимостью 200килорублей, чтоб вносить правки в 2-3 программы, вот и хочу перевести все свое хозяйство под бесплатный софт, но для этого его нужно установить себе на комп и правильно собрать все элементы(ИДЕ, компилятор, мейкфайлы...) Я этим никогда ранее не озадачивался.

Проц IMX6S, но в данном случае это не важно, важнее ядро А9, на перспективу А7.

Цитата(scifi @ Jan 26 2018, 11:13) *


Я так понимаю, что надо скачать это - https://releases.linaro.org/components/tool...atest/arm-eabi/

Но там только компилятор, потом, так полагаю, нужно скачать эклипс, в принципе скачан уже.

Потом самое интересное - подружить их вместе. Вот тут я полный ноль crying.gif
aaarrr
Не надо IDE. Достаточно упомянутой Linaro + make, если он не идет в комплекте.
mantech
Цитата(aaarrr @ Jan 26 2018, 14:41) *
Не надо IDE. Достаточно упомянутой Linaro + make, если он не идет в комплекте.


Это когда просто скомпилить уже готовое и портированное, то согласен, а сам процесс портирования все-таки не такой уж тривиальный, поэтому ИДЕ все же желательна

ЗЫ. Ну и все-таки наверно предполагаете, что под такой проц в проекте не один файл main.c... Там около сотни файлов, это ж все нужно собрать в новый проект и уж потом компилить...
aaarrr
Цитата(mantech @ Jan 26 2018, 14:47) *
Это когда просто скомпилить уже готовое и портированное, то согласен, а сам процесс портирования все-таки не такой уж тривиальный, поэтому ИДЕ все же желательна

Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает.
Всего-то нужно внести минимум правок, написать новый скрипт для линкера и добавить Makefile.
И клиенту передадите аккуратный проект, не требующий документации по установке и сборке.

Цитата(mantech @ Jan 26 2018, 14:47) *
Там около сотни файлов, это ж все нужно собрать в новый проект и уж потом компилить...

Освойте make, и обнаружите, что "собрать проект" - это совсем даже не проблема.
scifi
Цитата(aaarrr @ Jan 26 2018, 14:53) *
Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает.

+1. Для минимальных правок IDE не нужно. А для сборки нужен только make.
Для просмотра и правки дерева исходников есть соответствующие текстовые редакторы. Сам использую Source Insight.

Цитата(aaarrr @ Jan 26 2018, 14:56) *
Освойте make, и обнаружите, что "собрать проект" - это совсем даже не проблема.

Птичий язык мейкфайлов поначалу пугает, но примеров есть множество, и документация исчерпывающая.
mantech
Цитата(aaarrr @ Jan 26 2018, 14:56) *
Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает.
Всего-то нужно внести минимум правок, написать новый скрипт для линкера и добавить Makefile.
И клиенту передадите аккуратный проект, не требующий документации по установке и сборке.


Освойте make, и обнаружите, что "собрать проект" - это совсем даже не проблема.


Я это понимаю, но в данном вопросе полный ноль, глянул в эти мейкфайлы - все-равно, что птичий язык изучать...
Неужели нет способа проще и понятнее??
aaarrr
Цитата(mantech @ Jan 26 2018, 14:59) *
Я это понимаю, но в данном вопросе полный ноль, глянул в эти мейкфайлы - все-равно, что птичий язык изучать...

Есть такое. Но на начальном этапе во все тонкости можно не вдаваться, да и гугл выручит.

Цитата(mantech @ Jan 26 2018, 14:59) *
Неужели нет способа проще и понятнее??

Ну, можно и из bat-файла все собрать, наверное. Но вряд ли это сильно проще.
mantech
Цитата(aaarrr @ Jan 26 2018, 15:07) *
Есть такое. Но на начальном этапе во все тонкости можно не вдаваться, да и гугл выручит.


Ну, можно и из bat-файла все собрать, наверное. Но вряд ли это сильно проще.


Это понятно, но все-таки ИДЕ как-то должна помогать в этом, например автогенератор мейкфайлов?
aaarrr
Цитата(mantech @ Jan 26 2018, 15:15) *
Это понятно, но все-таки ИДЕ как-то должна помогать в этом, например автогенератор мейкфайлов?

По-моему, трудозатраты на борьбу с IDE сведут плюсы от возможной помощи с её стороны на нет.
Тем более, что ценность приобритенного опыта будет равна нулю.

Если бы стояла задача вести разработку - тогда, возможно, и стоило бы смотреть в этом направлении,
но Вам ведь уже отлаженный проект просто собрать надо.
mantech
Цитата(aaarrr @ Jan 26 2018, 15:25) *
По-моему, трудозатраты на борьбу с IDE сведут плюсы от возможной помощи с её стороны на нет.
Тем более, что ценность приобритенного опыта будет равна нулю.

Если бы стояла задача вести разработку - тогда, возможно, и стоило бы смотреть в этом направлении,
но Вам ведь уже отлаженный проект просто собрать надо.


Почему? Да, сейчас надо просто перепортировать готовый проект, потом возможно будет еще работа по разработке под ядра, которые текущий ИАР не поддерживает.

Раньше можно было покупать его но за последние 3 года он стал стоить бешено дорого.
scifi
Если у вас проект собирается яром, наверняка процесс сборки простейший. Следовательно, и мейкфайл тоже будет простейшим. Жалко денёк потратить и научиться? Советую для начала сделать gcc+make="Hello world!". В процессе набьёте все шишки, остальное - тупой перенос с яра, чисто мускульная работа.
Вот для примера типичный мейкфайл у меня, работает под windows.
Хитрость в том, что перед вызовом директория проекта делается текущей директорией, в PATH добавляется путь к gcc. Таким образом в мейкфайле не нужны абсолютные пути к файлам, все пути написаны относительно директории проекта.
CODE
NAME=boot
SHELL=cmd
ARCH=arm-none-eabi
CC=$(ARCH)-gcc
OBJCOPY=$(ARCH)-objcopy
SIZE=$(ARCH)-size
ELF=$(NAME).elf
BIN=$(NAME).bin
SRC=$(wildcard src/*.c net/*.c)
OBJ=$(SRC:.c=.o)
DEP=$(SRC:.c=.d)
INC=-Isrc -I.
CFLAGS=-Os -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -gdwarf-2 -Wall -fno-strict-aliasing -std=gnu11
LDFLAGS=-T stm32f407.ld -Wl,--gc-sections -fwhole-program -static --specs=nano.specs -lc -lm -lnosys

.PHONY: all clean

all: $(BIN)

%.o: %.c
@echo CC $<
@$(CC) $< -c -MMD $(CFLAGS) $(INC) -o $@

$(ELF): $(OBJ)
@echo LINK $@
@$(CC) $^ $(CFLAGS) $(LDFLAGS) -o $@
@echo SIZE $@
@$(SIZE) $@

$(BIN): $(ELF)
@echo BIN $@
@$(OBJCOPY) -O binary $^ $@

clean:
@echo CLEAN
@del /q $(subst /,\,$(ELF) $(BIN) $(OBJ) $(DEP)) 2>nul

-include $(DEP)
mantech
Цитата(scifi @ Jan 26 2018, 15:40) *
Если у вас проект собирается яром, наверняка процесс сборки простейший. Следовательно, и мейкфайл тоже будет простейшим. Жалко денёк потратить и научиться? Советую для начала сделать gcc+make="Hello world!". В процессе набьёте все шишки, остальное - тупой перенос с яра, чисто мускульная работа.
Вот для примера типичный мейкфайл у меня, работает под windows.
Хитрость в том, что перед вызовом директория проекта делается текущей директорией, в PATH добавляется путь к gcc. Таким образом в мейкфайле не нужны абсолютные пути к файлам, все пути написаны относительно директории проекта.
CODE
NAME=boot
SHELL=cmd
ARCH=arm-none-eabi
CC=$(ARCH)-gcc
OBJCOPY=$(ARCH)-objcopy
SIZE=$(ARCH)-size
ELF=$(NAME).elf
BIN=$(NAME).bin
SRC=$(wildcard src/*.c net/*.c)
OBJ=$(SRC:.c=.o)
DEP=$(SRC:.c=.d)
INC=-Isrc -I.
CFLAGS=-Os -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 -gdwarf-2 -Wall -fno-strict-aliasing -std=gnu11
LDFLAGS=-T stm32f407.ld -Wl,--gc-sections -fwhole-program -static --specs=nano.specs -lc -lm -lnosys

.PHONY: all clean

all: $(BIN)

%.o: %.c
@echo CC $<
@$(CC) $< -c -MMD $(CFLAGS) $(INC) -o $@

$(ELF): $(OBJ)
@echo LINK $@
@$(CC) $^ $(CFLAGS) $(LDFLAGS) -o $@
@echo SIZE $@
@$(SIZE) $@

$(BIN): $(ELF)
@echo BIN $@
@$(OBJCOPY) -O binary $^ $@

clean:
@echo CLEAN
@del /q $(subst /,\,$(ELF) $(BIN) $(OBJ) $(DEP)) 2>nul

-include $(DEP)



Дык, изучать все-равно придется, без этого в данном вопросе вообще никак. Просто если уже есть готовые решения, почему б ими не воспользоваться?
amiller
Вы используете IAR.
А если покопать в сторону того, чтобы заставить его сгенерить make-file? Или не удалять его после билда.
Может быть опциями, а может параметрами командной строки.
А потом сделать в готовом файле элементарные правки.
scifi
Цитата(amiller @ Jan 26 2018, 20:13) *
Вы используете IAR.
А если покопать в сторону того, чтобы заставить его сгенерить make-file? Или не удалять его после билда.
Может быть опциями, а может параметрами командной строки.
А потом сделать в готовом файле элементарные правки.

Нет там никакого make, у них свой велосипед. Даже есть для командной строки IarBuild.exe.
VladislavS
Что такое make-file любой программист либо должен знать, либо может освоить за 10-15 минут. По-моему, куда сложнее код написанный для iar скомпилировать в том же gcc. Разница и в аппаратнозависимом синтаксисе, и в стандартных С-шных библиотеках. Но всё решаемо, была бы задача поставлена.
mantech
Цитата(VladislavS @ Jan 26 2018, 20:54) *
Что такое make-file любой программист либо должен знать, либо может освоить за 10-15 минут. По-моему, куда сложнее код написанный для iar скомпилировать в том же gcc. Разница и в аппаратнозависимом синтаксисе, и в стандартных С-шных библиотеках. Но всё решаемо, была бы задача поставлена.


Вот почему и спрашиваю, т.к. кроме запуска связки ИДЕ-компилятор-мейкфайл есть еще много чего переделывать, т.к. в ИАРе далеко совсем не так, как в GCC...
scifi
Цитата(mantech @ Jan 26 2018, 21:54) *
Вот почему и спрашиваю, т.к. кроме запуска связки ИДЕ-компилятор-мейкфайл есть еще много чего переделывать, т.к. в ИАРе далеко совсем не так, как в GCC...

В то же время всё можно сделать и там, и там. Если будут новые трудности, возвращайтесь. Кстати, мне тоже доводилось переводить прошивки с яра на gcc. Ничего сногсшибательного не было.
mantech
Цитата(scifi @ Jan 26 2018, 22:48) *
В то же время всё можно сделать и там, и там. Если будут новые трудности, возвращайтесь. Кстати, мне тоже доводилось переводить прошивки с яра на gcc. Ничего сногсшибательного не было.


Вроде собрал все и даже компилирует проект из 20 файлов, но есть мелкие гадости, с которыми пока не могу разобраться, например пути к файлам. В ИАРе все задавалось просто, в свойствах проекта прописывал локальные пути к папкам с хидерами, за основу брался корень проекта. Как тут так сделать, пробовал добавлять пути во вкладке компилятора, но гсс пишет, что немогу прочитать файл, пишу полный путь, с буквы диска и т.д. - читает нормально, где можно это исправить?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2024 Invision Power Services, Inc.