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

 
 
19 страниц V  « < 15 16 17 18 19 >  
Reply to this topicStart new topic
> Eclipse + GCC для ARM, Среда разработки для ARM, причем бесплатная...
AHTOXA
сообщение Oct 9 2014, 04:28
Сообщение #241


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

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



Цитата(nanorobot @ Oct 8 2014, 16:16) *
Извините, Антоха. Ламерский вопрос: Просмотрел примеры за Вашим авторством, никак не мог обнаружить где в состав проекта(примера) включаются исходные файлы scmRtos\Common\
Как то неявным образом через wildcard и указанием пути?

Да, именно так.
В makefile:
Сначала указываем директорию, где расположена ось:
Код
# scmRTOS dir
    SCMDIR    = ../scmRTOS

Потом задаём список директорий с исходниками:
Код
# source directories (all *.c, *.cpp and *.S files included)
    DIRS := $(SRCDIR)
    DIRS += $(COMMON)
    DIRS += $(SCMDIR)/Common $(SCMDIR)/CortexM3
    DIRS += $(SCMDIR)/Extensions/Profiler

Потом во всех этих директориях ищем все файлы с расширениями *.c, *.cpp, *.S:
Код
    OBJS += $(wildcard $(addsuffix /*.cpp, $(DIRS)))
    OBJS += $(wildcard $(addsuffix /*.c, $(DIRS)))
    OBJS += $(wildcard $(addsuffix /*.S, $(DIRS)))

Теперь убираем пути и меняем расширение на *.o:
Код
    OBJS := $(notdir $(OBJS))
    OBJS := $(OBJS:.cpp=.o)
    OBJS := $(OBJS:.c=.o)
    OBJS := $(OBJS:.S=.o)

И, наконец, добавляем к именам файлов путь к директории obj (чтобы все объектные файы лежали там):
Код
    OBJS := $(patsubst %, $(OBJDIR)/%, $(OBJS))

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


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Oct 9 2014, 04:59
Сообщение #242


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Отлично, подробно.

Благодарю Вас за ликбез, Антоха.

Сообщение отредактировал nanorobot - Oct 9 2014, 05:01
Go to the top of the page
 
+Quote Post
Neborak
сообщение Oct 9 2014, 14:33
Сообщение #243


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 13-04-09
Пользователь №: 47 609



Цитата(AHTOXA @ Oct 6 2014, 18:18) *
Спокойствие, только спокойствие! ©
1. -nostartfiles - правильная птичка. У вас есть свой стартап-файл (который *.S), и вам не нужны другие, которые предлагаются по умолчанию.
2. SystemInit() вы нашли?
3. Почему вы не хотите взять тот проект, который замигал, и начать переделывать под себя его?
4. Ещё вариант, гарантированно рабочий - не полагаться на плагин, а использовать "makefile проект". Примеры таких проектов есть, например, в scmRTOS.

Немного разобрался, Эклипс упорно пихает сишные файлы стартапа, игнорируя мой файл ассемблерный файл, и как-то галочками отключить не удалось. Хотя мой стартам компилирует и передает линкеру. Попробую прикрутить к Эклипсу проект мигания светодиодом, там свой мэйкфайл, а не автоматически сгенерированный плагином.
Еще проблема с этим ST-Linkgdbserverом, через раз коннектиться сервер к чипу, и через раз стартует отладка, вижу только, что перешел на вектор сброса, дальше "Step into" и больше ответа от отладчика нет.
Go to the top of the page
 
+Quote Post
Aaron
сообщение Oct 10 2014, 18:47
Сообщение #244


Местный
***

Группа: Свой
Сообщений: 243
Регистрация: 5-10-06
Из: Зеленоград
Пользователь №: 21 007



Neborak, АНТОХА дело советует - уходите от этих плагинов! Автосгенеренный мейкфайл совсем не юзер-френдли, поменять что-то - только через плагин. А если система слетела, исходники остались, плагин поставить не получается, а компилить надо?
1 раз сделать свой мейкфайл и использовать с небольшими изменениями для всех проектов!
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Oct 13 2014, 10:32
Сообщение #245


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Ув. АНТОХА. У меня к Вам еще вопрос: Ваши примеры для Cortex-M4 успешно собираются как с помощью arm-none-eabi, так и с помощью arm-kgp-eabi. Но при открытии main.cpp кто-то невидимый(парсер?)
делает массу подчеркиваний красным и оранжевым цветом. Не подскажете в чем причина, и как преодолеть? Windows 7 x64, Eclipse Kepler, опции проекта по умолчанию, т.е. Ваши.

Судя по всему, первопричина в том, что парсер считает "Unresolved inclusion" инклюды: #include "pin.h" #include <scmRTOS.h>. Но даже явное указание путей к ним, в свойствах проекта, не лечит проблему.
Хочется полного исцеления, а не маскирования снятием галок где нибудь в Code Analysis

Сообщение отредактировал nanorobot - Oct 13 2014, 11:20
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Oct 13 2014, 11:15
Сообщение #246


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

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



Да, это собственный парсер эклипсы. Надо объяснить ему, где искать системные инклюды, и ваши личные определения из makefile.
У меня в закладках есть вот эта ссылка. Но это для прошлых версий эклипсы (у меня до сих пор Indigo, лень обновлять). Для кеплера, емнимс, способ изменился. Там немного дальше по теме коллеги выкладывали способ. Ага, вот он.

Кстати, у вас на картинке папки SamplesCommon и scmRTOS вроде пустые?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Oct 13 2014, 11:47
Сообщение #247


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(AHTOXA @ Oct 13 2014, 17:15) *
Да, это собственный парсер эклипсы. Надо объяснить ему, где искать системные инклюды, и ваши личные определения из makefile.
У меня в закладках есть вот эта ссылка. Но это для прошлых версий эклипсы (у меня до сих пор Indigo, лень обновлять). Для кеплера, емнимс, способ изменился. Там немного дальше по теме коллеги выкладывали способ. Ага, вот он.

Кстати, у вас на картинке папки SamplesCommon и scmRTOS вроде пустые?



Пустые. Я как-то и не заметил их. Но почему они здесь? По факту они расположены на 2 уровня выше т.е. C:\Kepler\scmRtos\ а путь к проектам C:\Kepler\Workspace\2-Message\
Makefile практически Ваш. Поправил две строки с путями до SamplesCommon и scmRTOS - поднял на один уровень. Видимо где-то здесь косяк и есть.

-----------------------------------------------------------------------------
было:

# scmRTOS dir
SCMDIR = ../scmRTOS
# lib dir
COMMON = ../SamplesCommon
-----------------------------------------------------------------------------
стало:

# scmRTOS dir
SCMDIR = ../../scmRTOS
# lib dir
COMMON = ../../SamplesCommon
-----------------------------------------------------------------------------

Сообщение отредактировал IgorKossak - Oct 13 2014, 19:18
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Oct 13 2014, 14:02
Сообщение #248


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

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



Цитата(nanorobot @ Oct 13 2014, 17:47) *
Пустые. Я как-то и не заметил их. Но почему они здесь? По факту они расположены на 2 уровня выше т.е. C:\Kepler\scmRtos\ а путь к проектам C:\Kepler\Workspace\2-Message\

А, тогда всё понятно. И makefile, и проект эклипсы рассчитаны на то, что папки SamplesCommon и scmRTOS расположены на одном уровне с папками проектов (1-EventFlag, 2-Message...). А у вас не так. Makefile вы поправили, а проект эклипсы - нет. Нажмите правой кнопкой на папку scmRTOS, выберите Properties. Там будет кнопка Edit, нажмите её и введите путь "../../scmRTOS". Так же поступите и с папкой SamplesCommon (../../SamplesCommon).
Тогда эклипса найдёт исходники оси и общие файлы.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
swisst
сообщение Dec 28 2014, 17:54
Сообщение #249


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Подскажите, кто в курсе - code sorcery lite сейчас можно стянуть без ide (только тулчейн) ?
И что сейчас можно пользовать в качестве альтернативы ?
Go to the top of the page
 
+Quote Post
IgorKossak
сообщение Dec 28 2014, 19:30
Сообщение #250


Шаман
******

Группа: Модераторы
Сообщений: 3 064
Регистрация: 30-06-04
Из: Киев, Украина
Пользователь №: 221



Цитата(swisst @ Dec 28 2014, 19:54) *
Подскажите, кто в курсе - code sorcery lite сейчас можно стянуть без ide (только тулчейн) ?

Здесь
Цитата(swisst @ Dec 28 2014, 19:54) *
И что сейчас можно пользовать в качестве альтернативы ?

GNU Tools for ARM Embedded Processors
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Dec 28 2014, 19:35
Сообщение #251


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

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



gcc-arm-embedded
Упс, опоздал маленькоsm.gif


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
swisst
сообщение Dec 29 2014, 07:29
Сообщение #252


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Спасибо. Ссылки - то, что надо.
Go to the top of the page
 
+Quote Post
swisst
сообщение Jan 10 2015, 18:58
Сообщение #253


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



прошу помощи

при сборке цели all make завершается с ошибкой (точнее):
Код
d:/projects/tools/gnutoolsforarmembedded/4.9.2014q4/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld.exe: warning: cannot find entry symbol _start; defaulting to 00008000
output/startup_ARMCM0.o: In function `Reset_Handler':
D:\Projects\Prog\EclipseWS\Test/startup_ARMCM0.c:294: undefined reference to `__data_start__'
D:\Projects\Prog\EclipseWS\Test/startup_ARMCM0.c:294: undefined reference to `__data_end__'
output/startup_ARMCM0.o:(.vectors+0x0): undefined reference to `__StackTop'
collect2.exe: error: ld returned 1 exit status
make: *** [output/MIG2.elf] Error 1


из того что мне понятно: все вышеупомянутые undefined reference вычисляются в скрипте линкера и должны попасть в файл startup
почему этого не происходит - понять не могу...потому и прошу
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Jan 10 2015, 19:32
Сообщение #254


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

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



Цитата(swisst @ Jan 10 2015, 23:58) *
из того что мне понятно: все вышеупомянутые undefined reference вычисляются в скрипте линкера и должны попасть в файл startup

А вы в makefile указали линкеру, какой скрипт использовать (что-то типа -T$(LD_SCRIPT)) ?


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
swisst
сообщение Jan 10 2015, 19:50
Сообщение #255


Частый гость
**

Группа: Свой
Сообщений: 163
Регистрация: 16-02-07
Из: Харьков
Пользователь №: 25 425



Цитата(AHTOXA @ Jan 10 2015, 21:32) *
А вы в makefile указали линкеру, какой скрипт использовать (что-то типа -T$(LD_SCRIPT)) ?


обязательно. проект я прикрепил на всякий случай.

стоит оговориться: ARM plugin не использую. пытаюсь собрать тестовый проект в eclipse c настройками, как в Вашем сообщении
Прикрепленные файлы
Прикрепленный файл  Test.zip ( 46.91 килобайт ) Кол-во скачиваний: 11
 
Go to the top of the page
 
+Quote Post

19 страниц V  « < 15 16 17 18 19 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 9th July 2025 - 21:37
Рейтинг@Mail.ru


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