mantech 50 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Приветствую. Собственно вопрос - может у кого есть методика сборки под указанные ОС системы, включающей в себя компилятор, ИДЕ, еще что там будет нужно, чтоб сделать собственный загрузчик для камней на базе ядра кортекс А7 или А9? Вопросов по программированию нет, все это я уже давно делал в ИАРе, но клиент просит, чтоб было сделано на свободно распространяемом софте. Большая просьба не отсылать к гуглу и пр, кто в теме, тот знает сколько недель нужно танцевать с бубном, чтоб все это настроить для нормальной работы. Настройка отладки(GDB и пр.) не нужна от слова вообще. Буду очень признателен за все советы и ссылки откуда чего скачать... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Linaro? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Aner 7 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба так скажи что за камень, может найдется народ, дадут исходники загрузчика под винду. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба так скажи что за камень, может найдется народ, дадут исходники загрузчика под винду. Мне не надо исходники, они у меня есть, просто проект под ИАР, но заказчик у себя не будет ставить софт стоимостью 200килорублей, чтоб вносить правки в 2-3 программы, вот и хочу перевести все свое хозяйство под бесплатный софт, но для этого его нужно установить себе на комп и правильно собрать все элементы(ИДЕ, компилятор, мейкфайлы...) Я этим никогда ранее не озадачивался. Проц IMX6S, но в данном случае это не важно, важнее ядро А9, на перспективу А7. Linaro? Я так понимаю, что надо скачать это - https://releases.linaro.org/components/tool...atest/arm-eabi/ Но там только компилятор, потом, так полагаю, нужно скачать эклипс, в принципе скачан уже. Потом самое интересное - подружить их вместе. Вот тут я полный ноль :crying: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Не надо IDE. Достаточно упомянутой Linaro + make, если он не идет в комплекте. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 января, 2018 Опубликовано 26 января, 2018 (изменено) · Жалоба Не надо IDE. Достаточно упомянутой Linaro + make, если он не идет в комплекте. Это когда просто скомпилить уже готовое и портированное, то согласен, а сам процесс портирования все-таки не такой уж тривиальный, поэтому ИДЕ все же желательна ЗЫ. Ну и все-таки наверно предполагаете, что под такой проц в проекте не один файл main.c... Там около сотни файлов, это ж все нужно собрать в новый проект и уж потом компилить... Изменено 26 января, 2018 пользователем mantech Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Это когда просто скомпилить уже готовое и портированное, то согласен, а сам процесс портирования все-таки не такой уж тривиальный, поэтому ИДЕ все же желательна Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает. Всего-то нужно внести минимум правок, написать новый скрипт для линкера и добавить Makefile. И клиенту передадите аккуратный проект, не требующий документации по установке и сборке. Там около сотни файлов, это ж все нужно собрать в новый проект и уж потом компилить... Освойте make, и обнаружите, что "собрать проект" - это совсем даже не проблема. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает. +1. Для минимальных правок IDE не нужно. А для сборки нужен только make. Для просмотра и правки дерева исходников есть соответствующие текстовые редакторы. Сам использую Source Insight. Освойте make, и обнаружите, что "собрать проект" - это совсем даже не проблема. Птичий язык мейкфайлов поначалу пугает, но примеров есть множество, и документация исчерпывающая. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Совершенно тривиален - поверьте, делал неоднократно. IDE только помешает. Всего-то нужно внести минимум правок, написать новый скрипт для линкера и добавить Makefile. И клиенту передадите аккуратный проект, не требующий документации по установке и сборке. Освойте make, и обнаружите, что "собрать проект" - это совсем даже не проблема. Я это понимаю, но в данном вопросе полный ноль, глянул в эти мейкфайлы - все-равно, что птичий язык изучать... Неужели нет способа проще и понятнее?? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Я это понимаю, но в данном вопросе полный ноль, глянул в эти мейкфайлы - все-равно, что птичий язык изучать... Есть такое. Но на начальном этапе во все тонкости можно не вдаваться, да и гугл выручит. Неужели нет способа проще и понятнее?? Ну, можно и из bat-файла все собрать, наверное. Но вряд ли это сильно проще. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Есть такое. Но на начальном этапе во все тонкости можно не вдаваться, да и гугл выручит. Ну, можно и из bat-файла все собрать, наверное. Но вряд ли это сильно проще. Это понятно, но все-таки ИДЕ как-то должна помогать в этом, например автогенератор мейкфайлов? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 69 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Это понятно, но все-таки ИДЕ как-то должна помогать в этом, например автогенератор мейкфайлов? По-моему, трудозатраты на борьбу с IDE сведут плюсы от возможной помощи с её стороны на нет. Тем более, что ценность приобритенного опыта будет равна нулю. Если бы стояла задача вести разработку - тогда, возможно, и стоило бы смотреть в этом направлении, но Вам ведь уже отлаженный проект просто собрать надо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба По-моему, трудозатраты на борьбу с IDE сведут плюсы от возможной помощи с её стороны на нет. Тем более, что ценность приобритенного опыта будет равна нулю. Если бы стояла задача вести разработку - тогда, возможно, и стоило бы смотреть в этом направлении, но Вам ведь уже отлаженный проект просто собрать надо. Почему? Да, сейчас надо просто перепортировать готовый проект, потом возможно будет еще работа по разработке под ядра, которые текущий ИАР не поддерживает. Раньше можно было покупать его но за последние 3 года он стал стоить бешено дорого. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
scifi 1 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Если у вас проект собирается яром, наверняка процесс сборки простейший. Следовательно, и мейкфайл тоже будет простейшим. Жалко денёк потратить и научиться? Советую для начала сделать 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) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 50 26 января, 2018 Опубликовано 26 января, 2018 · Жалоба Если у вас проект собирается яром, наверняка процесс сборки простейший. Следовательно, и мейкфайл тоже будет простейшим. Жалко денёк потратить и научиться? Советую для начала сделать 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) Дык, изучать все-равно придется, без этого в данном вопросе вообще никак. Просто если уже есть готовые решения, почему б ими не воспользоваться? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться