|
|
  |
Eclipse + GCC для ARM, Среда разработки для ARM, причем бесплатная... |
|
|
|
Jan 10 2015, 20:16
|

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

|
Поскольку у вас в проекте нет ни одного cpp- файла, то линковка идёт по первой ветке: Код # use $(CC) for C-only projects or $(CPP) for C++-projects: ifeq "$(strip $(CPPSRC)$(CPPARM))" "" @$(CC) $(THUMB) $(CFLAGS) $(DEPFLAGS) $(ALLOBJ) --output $@ -nostartfiles else $(CPP) $(THUMB) $(CFLAGS) $(DEPFLAGS) $(ALLOBJ) --output $@ $(LDFLAGS) endif А в этой ветке LDFLAGS не указаны. ЗЫ. У make есть ключик -n, который заставляет его ничего не выполнять, а лишь печатать команды, которые он будет выполнять. Очень удобно смотреть, как будет идти выполнение makefile.
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Jan 10 2015, 22:05
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425

|
Цитата(AHTOXA @ Jan 10 2015, 22:16)  А в этой ветке LDFLAGS не указаны.
ЗЫ. У make есть ключик -n, который заставляет его ничего не выполнять, а лишь печатать команды, которые он будет выполнять. Очень удобно смотреть, как будет идти выполнение makefile. искренне благодарю. все собирается.
|
|
|
|
|
Dec 13 2015, 18:56
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425

|
доброго вечера
может тема вопроса заезженная или вообще не в ту ветку написал...все же...
eclipse + gcc + ARM + LwIP RAW, есть структура файлов: D:\Tools\LwIP - тут последняя версия, которая тянется из GIT-репозитория D:\Projects\EclipseWorkSpace\Project_1
хочу, чтобы Project_1 (в котором веб сервер будет на базе LwIP) был минимально связан с папкой LwIP
т.е. хочу, чтобы исходники и хедеры в папке LwIP не менялись и не допиливались вообще. чтобы все, что зависит от мк (в том числе и lwipopts.h, lwippools.h, драйверы PHY и т.д.) хранилось в подпапке проекта.
все подключения делаю через make, голый eclipse через discovery все резолвит - исходники компилируются, eclipse по подключенным папкам прыгает - файлы открывает, все вроде неплохо, но - есть src/lwip/timers.c - таймеры LwIP, которые хотят процедуру sys_now() (возвращает значение мс, которые считает SysTick) - вот как ее туда корректно передать ? так чтобы в исходниках LwIP ничего не менять
|
|
|
|
|
Dec 13 2015, 19:27
|

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

|
Цитата(swisst @ Dec 13 2015, 23:56)  есть src/lwip/timers.c - таймеры LwIP, которые хотят процедуру sys_now() (возвращает значение мс, которые считает SysTick) - вот как ее туда корректно передать ? так чтобы в исходниках LwIP ничего не менять Просто создайте такую функцию в любом файле проекта. Если ваш проект на c++, то обзовите её extern "C", типа так: Код extern "C" unsigned long sys_now() { }
--------------------
Если бы я знал, что такое электричество...
|
|
|
|
|
Dec 13 2015, 19:48
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425

|
Цитата(AHTOXA @ Dec 13 2015, 23:27)  Просто создайте такую функцию в любом файле проекта. Если ваш проект на c++, то обзовите её extern "C", типа так: да, к слову. проект на С. в общем спасибо - магия форума сработала на самом деле так и сделал - в папке_проекта/timer.c - который мой, так сказать, тикает раз в мс - его значение и возвращал в этой функции. почему не собиралось - не могу понять (и это хуже всего). думал, что-то упускаю...
|
|
|
|
|
Feb 24 2016, 08:31
|
Местный
  
Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846

|
Цитата(AHTOXA @ Oct 9 2014, 07:28)  При попытке собрать пример из scmRTOS, Eclipse ругается: Код 11:17:09 **** Incremental Build of configuration Default for project 1-EventFlag **** all Cannot run program "": Launching failed
Error: Program "" not found in PATH PATH=[C:\Program Files (x86)\GNU ARM Eclipse\Build Tools\2.6-201507152002\bin;...;C:\Program Files (x86)\GNU Tools ARM Embedded\5.2 2015q4\bin...] Как видно, весь необходимый инструментарий установлен, пути прописаны. Подскажите, пожалуйста, в чем может быть дело?
--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
|
|
|
|
|
Feb 24 2016, 09:34
|
Местный
  
Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846

|
Цитата(IgorKossak @ Feb 24 2016, 11:46)  Путь надо в кавычках указывать. Пробел в Program files мешает. Или переустановить тулчейн в папку без пробелов. Почему же во всех руководствах жирным шрифтом пишут не менять путь установки по-умолчанию? Ну да ладно. Добавил кавычки в глобальных настройках (Preferences/C++/Build/Global Tool Paths) к путям Build tools folder и Toolchain folder. В результате Eclipse формирует путь: Код PATH=[C:\Eclipse-Luna\"C:\Program Files (x86)\GNU ARM Eclipse\Build Tools\2.6-201507152002\bin";...C:\Program Files (x86)\GNU Tools ARM Embedded\5.2 2015q4\bin;...] Естественно, не работает. Исправил переменную PATH в настройках проекта (Properties/C++ Build/Environment) - убрал лишнее, поставил кавычки на всех путях  . Все равно не работает. Обновлено: При перезаписывании свойств проекта в дереве проекта появляется папка Includes с подпапками "C:\Program Files (x86)\GNU Tools ARM Embedded\5.2 2015q4\..." и при попытке сборки Eclipse выдает уже такие сообщения: Код 15:16:07 **** Incremental Build of configuration Default for project 1-EventFlag **** make all --- building 1-EventFlag process_begin: CreateProcess(NULL, mkdir ./obj, ...) failed. make (e=2): Не удается найти указанный файл. <...> --- compiling ./src/main.cpp... ./src/main.cpp:128:1: fatal error: opening dependency file obj/main.d: No such file or directory } ^ compilation terminated. Т.е. теперь make запускается, но почему-то не может выполнить команды mkdir.
Сообщение отредактировал Harvester - Feb 24 2016, 12:28
--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
|
|
|
|
|
Feb 24 2016, 20:23
|
Местный
  
Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846

|
Цитата(IgorKossak @ Feb 24 2016, 22:14)  Я делаю несколько иначе. Я не пользуюсь настройками в Global Tool Paths. Т. е. пути там есть, но я не уверен, что среда ими пользуется. Я создаю переменные ToolchainPath и CoreutilsPath типа Directory в Preferences/C++/Build/Build Variables, без кавычек. Потом в Preferences/C++/Build/Environment создаю переменную PATH со значением ${CoreutilsPath};${ToolchainPath}, ниже надо выбрать Append variables to native environment, применить нажав Apply, OK. Разумеется, в системной переменной PATH этих путей быть не должно. Так всё работает. А у меня почему-то нет  Но за совет спасибо.
--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
|
|
|
|
|
Feb 26 2016, 17:54
|
Местный
  
Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846

|
Цитата(Harvester @ Feb 24 2016, 12:34)  При попытке сборки Eclipse выдает такие сообщения: Код 15:16:07 **** Incremental Build of configuration Default for project 1-EventFlag **** make all --- building 1-EventFlag process_begin: CreateProcess(NULL, mkdir ./obj, ...) failed. make (e=2): Не удается найти указанный файл. <...> --- compiling ./src/main.cpp... ./src/main.cpp:128:1: fatal error: opening dependency file obj/main.d: No such file or directory } ^ compilation terminated. Т.е. теперь make запускается, но почему-то не может выполнить команды mkdir.  Порывшись по форуму кажется нашел причину - make вместо sh.exe запускает cmd.exe. А почему так происходит и как это исправить - нигде не могу найти.
--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
|
|
|
|
|
Feb 26 2016, 19:21
|
Местный
  
Группа: Участник
Сообщений: 338
Регистрация: 1-02-06
Из: Королев, М.О.
Пользователь №: 13 846

|
Цитата(AHTOXA @ Feb 26 2016, 22:01)  А sh.exe лежит в PATH? Да, в одной папке с make.
--------------------
-Да как так-то?/-Да как-то так/-Ну так-то да
|
|
|
|
|
  |
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|
|