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

    

Сборка среды программирования под Cortex A9-A7

Приветствую.

 

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

 

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

 

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

 

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

 

Буду очень признателен за все советы и ссылки откуда чего скачать...

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


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

так скажи что за камень, может найдется народ, дадут исходники загрузчика под винду.

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


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

 

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

 

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

 

 

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

 

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

 

Потом самое интересное - подружить их вместе. Вот тут я полный ноль :crying:

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


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

Не надо IDE. Достаточно упомянутой Linaro + make, если он не идет в комплекте.

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


Ссылка на сообщение
Поделиться на другие сайты
Не надо IDE. Достаточно упомянутой Linaro + make, если он не идет в комплекте.

 

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

 

ЗЫ. Ну и все-таки наверно предполагаете, что под такой проц в проекте не один файл main.c... Там около сотни файлов, это ж все нужно собрать в новый проект и уж потом компилить...

Изменено пользователем mantech

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


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

Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает.

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

И клиенту передадите аккуратный проект, не требующий документации по установке и сборке.

 

Там около сотни файлов, это ж все нужно собрать в новый проект и уж потом компилить...

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

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


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

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

Для просмотра и правки дерева исходников есть соответствующие текстовые редакторы. Сам использую Source Insight.

 

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

Птичий язык мейкфайлов поначалу пугает, но примеров есть множество, и документация исчерпывающая.

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


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

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

И клиенту передадите аккуратный проект, не требующий документации по установке и сборке.

 

 

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

 

Я это понимаю, но в данном вопросе полный ноль, глянул в эти мейкфайлы - все-равно, что птичий язык изучать...

Неужели нет способа проще и понятнее??

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


Ссылка на сообщение
Поделиться на другие сайты
Я это понимаю, но в данном вопросе полный ноль, глянул в эти мейкфайлы - все-равно, что птичий язык изучать...

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

 

Неужели нет способа проще и понятнее??

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

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


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

 

 

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

 

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

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


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

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

Тем более, что ценность приобритенного опыта будет равна нулю.

 

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

но Вам ведь уже отлаженный проект просто собрать надо.

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


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

Тем более, что ценность приобритенного опыта будет равна нулю.

 

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

но Вам ведь уже отлаженный проект просто собрать надо.

 

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

 

Раньше можно было покупать его но за последние 3 года он стал стоить бешено дорого.

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


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

Если у вас проект собирается яром, наверняка процесс сборки простейший. Следовательно, и мейкфайл тоже будет простейшим. Жалко денёк потратить и научиться? Советую для начала сделать gcc+make="Hello world!". В процессе набьёте все шишки, остальное - тупой перенос с яра, чисто мускульная работа.

Вот для примера типичный мейкфайл у меня, работает под windows.

Хитрость в том, что перед вызовом директория проекта делается текущей директорией, в PATH добавляется путь к gcc. Таким образом в мейкфайле не нужны абсолютные пути к файлам, все пути написаны относительно директории проекта.

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)

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


Ссылка на сообщение
Поделиться на другие сайты
Если у вас проект собирается яром, наверняка процесс сборки простейший. Следовательно, и мейкфайл тоже будет простейшим. Жалко денёк потратить и научиться? Советую для начала сделать gcc+make="Hello world!". В процессе набьёте все шишки, остальное - тупой перенос с яра, чисто мускульная работа.

Вот для примера типичный мейкфайл у меня, работает под windows.

Хитрость в том, что перед вызовом директория проекта делается текущей директорией, в PATH добавляется путь к gcc. Таким образом в мейкфайле не нужны абсолютные пути к файлам, все пути написаны относительно директории проекта.

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)

 

 

Дык, изучать все-равно придется, без этого в данном вопросе вообще никак. Просто если уже есть готовые решения, почему б ими не воспользоваться?

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


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

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

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

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

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

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

Войти

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

Войти