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

 
 
51 страниц V  « < 43 44 45 46 47 > »   
Reply to this topicStart new topic
> Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем
Canis Dirus
сообщение Jan 11 2013, 21:41
Сообщение #661


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

Группа: Участник
Сообщений: 136
Регистрация: 7-01-09
Из: Нефтеюганск
Пользователь №: 42 967



Цитата(NaughtyFreak @ Jan 11 2013, 20:48) *
Компилер ставил apt-get install g++-4.4-arm-linux-gnueabi

Ничего удивительного. Там же только сам бинарник g++. Ставьте gcc-arm-linux-gnueabi, он своими зависимости притащит минимальный необходимый набор (компилятор C и препроцессор).


--------------------
С уважением, Алексей Шапошников.
Go to the top of the page
 
+Quote Post
NaughtyFreak
сообщение Jan 14 2013, 07:36
Сообщение #662


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

Группа: Участник
Сообщений: 90
Регистрация: 7-10-11
Из: Москва
Пользователь №: 67 593



Цитата(Canis Dirus @ Jan 12 2013, 01:41) *
Ничего удивительного. Там же только сам бинарник g++. Ставьте gcc-arm-linux-gnueabi, он своими зависимости притащит минимальный необходимый набор (компилятор C и препроцессор).

поставил, тольку 0.
Гугль по моей ошибке отсылает искать косяк в переменной PATH. где она, что она и что с ней делать ума не приложу...
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Jan 14 2013, 08:46
Сообщение #663


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Цитата(NaughtyFreak @ Jan 14 2013, 10:36) *
поставил, тольку 0.
Гугль по моей ошибке отсылает искать косяк в переменной PATH. где она, что она и что с ней делать ума не приложу...

Не смешно уже, поскольку я приводил строчку работы с PATH.
Код
echo $PATH  если нужно посмотреть что же там прописано
export PATH=$PATH:путь-к-компилятору если добавить путь, к-рый почеу-то не прописан
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Jan 29 2013, 10:44
Сообщение #664


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Прочитав это, попытался сделать для Eclipse Juno SR1 по аналогии с этим сообщением Сергея Борща.
Отличия: попытался сделать как рекомендуют разработчики, т.е. без "Discovery Options".
В качестве тестового проекта были использованы примеры от ScmRtos для lpc17xx.
Действия:
1. Запуск eclipse, выбор места для workspace. File->New->Makefile Project with Existing Code.
2. Project->Properties.
3. C/C++ General->Preprocessor Include Paths, Mfcros etc.
4. Вкладка Providers. Выбрал все варианты (поставил галки).
Подробности настроек:
4.1. CDT User Settings Entries: выбрано только Enable language settings providers for this project. В группе Language Settings Provider Options ничего не выбрано.
4.2. CDT Managed Build Settings Entries [ Shared ]: выбрано только Enable language settings providers for this project. Группа Language Settings Provider Options недоступна.
4.3. CDT GCC Build Output Parser: выбрано Enable language settings providers for this project. В группе Language Settings Provider Options заполнено по умолчанию Compiler command pattern: (gcc)|([gc]\+\+)|(clang), радиокнопка в Container to keep discovered entries "File" и выбрано Use heuristics to resolve paths.
4.4. CDT GCC Builtin Compiler Settings: выбрано Enable language settings providers for this project. В группе Language Settings Provider Options обязательно выбрать Allocate console in the console View. Остальное не выбрано. Поле "Command to get compiler specs" заполнено так: make discovery
5. Apply, Ok.

У меня не получилось (наверно руки кривые) сделать по полной аналогии. Возникли проблемы с переменными окружения ($(specs_file)).
Сделал изменения в makefile:
Код
#discovery target for Eclipse parser
.PHONY: discovery
discovery:
    @echo > dummyspec.c
    $(CC) $(INCS) $(CFLAGS) -E -P -v -dD dummyspec.c
    $(RM) dummyspec.*

# dependencies
ifeq (,$(findstring build,$(MAKECMDGOALS)))
ifeq (,$(findstring clean,$(MAKECMDGOALS)))
  ifeq (,$(findstring dirs,$(MAKECMDGOALS)))
   ifeq (,$(findstring discovery,$(MAKECMDGOALS)))
  -include $(wildcard $(OBJDIR)/*.d)
   endif
  endif
endif
endif


Не заработало!
Выяснил, что не распознаются относительные пути из $(INCS). При этом все определения (в makefile) и пути компилятора добавляются в eclipse. Замена BASE = . на абсолютный путь к проекту и добавение переменной, определяющую абсолютные значения путей к SCMDIR и COMMON привели к положительному результату.
Запись путей была только с прямыми слэшами, как пути в linux (не родные для Win), иначе не собирался проект с помощью make из командной строки (WinXp).
Проверено на WinXp и linux (SLCE 5.2). Причем в linux путь к компилятору указывался в makefile (TOOL), так как в переменных окружения его не было.

Вопрос: как заставить парсер определить на основе относительного пути полный, считая текщим положение makefile? Наверное, что при использовании Scons можно использовать pwd и получить для цели discovery необходимые полные пути. Как это сделать для make пока не думал.

To ReAl:
Похоже, что в srec_cat версии 1.61 поменялись ключи и на строку из makefile было предупреждение (под linux).


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
btolfa
сообщение Mar 30 2013, 22:08
Сообщение #665





Группа: Участник
Сообщений: 10
Регистрация: 9-05-11
Из: Казань
Пользователь №: 64 873



Цитата(mdmitry @ Jan 29 2013, 14:44) *
Прочитав это, попытался сделать для Eclipse Juno SR1 по аналогии с этим сообщением Сергея Борща.
Отличия: попытался сделать как рекомендуют разработчики, т.е. без "Discovery Options".

Можно избавиться от временного внучную созданного dummyspec.c Для этого надо изменить правило для discovery следующим образом:
Код
#discovery target for Eclipse parser
discovery:
    $(CC) $(INCS) $(CFLAGS) -E -P -v -dD '$(specs_file)'

А поле "Command to get compiler specs" заполнить make specs_file=${INPUTS} discovery.
По поводу относительных путей вижу только следующую возможность - добавить
Код
ROOT = $(shell pwd)

и указывать INCS пути относительно ROOT
Код
INCS += -I$(ROOT)/src
Go to the top of the page
 
+Quote Post
mdmitry
сообщение Apr 1 2013, 21:22
Сообщение #666


Начинающий профессионал
*****

Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648



Цитата(btolfa @ Mar 31 2013, 02:08) *
Можно избавиться от временного внучную созданного dummyspec.c Для этого надо изменить правило для discovery следующим образом:
Код
#discovery target for Eclipse parser
discovery:
    $(CC) $(INCS) $(CFLAGS) -E -P -v -dD '$(specs_file)'

А поле "Command to get compiler specs" заполнить make specs_file=${INPUTS} discovery.
По поводу относительных путей вижу только следующую возможность - добавить
Код
ROOT = $(shell pwd)

и указывать INCS пути относительно ROOT
Код
INCS += -I$(ROOT)/src

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


--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
Go to the top of the page
 
+Quote Post
btolfa
сообщение Apr 2 2013, 20:06
Сообщение #667





Группа: Участник
Сообщений: 10
Регистрация: 9-05-11
Из: Казань
Пользователь №: 64 873



Цитата(mdmitry @ Apr 2 2013, 01:22) *
Вы это проверяли? Если да, то на какой системе? Я не получил желаемого результата.

Да проверил - Windows 7 x64, Eclipse Juno SR 2. Так же стоит gnuwin32. Видимо у вас не работает из-за отсутсвия pwd утилиты.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Jul 10 2013, 09:39
Сообщение #668


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Несколько раз задавал где-то на форуме вопрос, но ни разу не получал ответа. Вот одна из попыток:
QUOTE (Сергей Борщ @ Jul 1 2010, 16:58) *
в эклипсе в настройке debug configuration есть возможность выбрать GDB(DSF) Hardware debug launcher и Standart GDB Hardware debug launcher. Какой предпочтительнее? DSF, похоже, не реагирует на настройку формата отображения регистров - каждый раз приходится вручную переключать отбражение с десятичного вида на шестнадцатиричный. Для стандартного формат задается в Window->Preverences->C/C++/Debug. Для DSF есть что-то подобное?

Тут вторая

Мало ли, вдруг кому-то тоже пригодится.

Обнаружил, что в последней эклипсе (Kepler) с CDT версии 8.2.0 после прекращения отладки с сипользованием Standart GDB HArdware Debugging Launcher невозможно удалить сессию в окне Debug. Попробовал еще раз DSF debug launcher и обнаружил, что из меню исчез выбор формата отображения регистров, переменных и т.д. Гугление показало, что они спрятали это меню в показанное на картинке место:
Прикрепленное изображение


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
swisst
сообщение Jul 23 2013, 11:10
Сообщение #669


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

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



Доброго дня !

прикручиваю Keil С51 к Eclipse. Как избавится от ругни на обработчик прерывания static void ADC_Conv_Ready (void) interrupt 6{} ?
Go to the top of the page
 
+Quote Post
Zend
сообщение Sep 5 2013, 08:22
Сообщение #670





Группа: Новичок
Сообщений: 3
Регистрация: 5-09-13
Из: Киев
Пользователь №: 78 196



Уважаемые, помогите разобраться.

По некоторым причинам пришлось слезть с Windows + CooCox на Linux + Eclipse + CDT + stlink(от texane)
И вот такая вот трабла... Всё билдится, компилится, в общем, работает ОК, но вот дебажить - через попу. Конкретно - не могу приостановить выполнение программы.
Если поставить брейкпоинт, на нём дебаггер останавливается нормально.
А вот если необходимо приостановить выполнение программы в том месте, в котором выполняется в данный момент - клацаю кнопку "Suspend" (как "пауза") - просто ничего не происходит sad.gif
Пробовал юзать OpenOCD - так там вообще эта кнопка неактивна, но если законнектиться телнетом к OpenOCD и сказать halt - нормально приостанавливается. Уж не знаю, что и думать...

Сообщение отредактировал Zend - Sep 5 2013, 08:23
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 5 2013, 10:40
Сообщение #671


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Zend @ Sep 5 2013, 10:22) *
Пробовал юзать OpenOCD - так там вообще эта кнопка неактивна, но если законнектиться телнетом к OpenOCD и сказать halt - нормально приостанавливается. Уж не знаю, что и думать...
В OpenOCD я наблюдал подобное поведение в случае, если в его скрипте нет команды "reset". Удалось это исправить в исходниках, но я не уверен, что починил правильно и в нужном месте. Не знаю, поможет ли это вам, но попробуйте пересобрать с вот этими исправлениями:
CODE
diff --git a/src/jtag/hla/hla_interface.c b/src/jtag/hla/hla_interface.c
index f8b5c61..5e958c3 100644
--- a/src/jtag/hla/hla_interface.c
+++ b/src/jtag/hla/hla_interface.c
@@ -137,7 +137,11 @@ int hl_interface_init_reset(void)
        jtag_add_reset(0, 1);
        hl_if.layout->api->assert_srst(hl_if.fd, 0);
    }
-
+    else
+    {
+        jtag_add_reset(0, 0);
+        hl_if.layout->api->assert_srst(hl_if.fd, 1);
+    }
    return ERROR_OK;
}

diff --git a/src/target/hla_target.c b/src/target/hla_target.c
index 5d31c7a..ececcdf 100644
--- a/src/target/hla_target.c
+++ b/src/target/hla_target.c
@@ -497,7 +497,9 @@ static int adapter_poll(struct target *target)

        LOG_DEBUG("halted: PC: 0x%08x", buf_get_u32(armv7m->arm.pc->value, 0, 32));
    }
-
+    else
+        target->state = state;
+    
    return ERROR_OK;
}



--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
berkl
сообщение Sep 11 2013, 07:00
Сообщение #672


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

Группа: Участник
Сообщений: 123
Регистрация: 22-03-10
Пользователь №: 56 115




Товарищи, помогите разобраться плз.

Вопрос по СMake + Eclipse.
Я так понял, с приходом мудрости, и опыта большинство отказываются использовать CMake и прочие костыли, и начинают писать makefile ручками, но я из новичков.

Гляньте, прав я или нет, плз:
итак, при совместной работе Эклипса и cmake есть 3 пути:
1. Использовать генератор "Eclipse CDT4 - Unix Makefiles" . Тут получается два проекта. Первый - это мною написанный файл CMakeLists.txt, из которого CMake сгенерирует файлы проекта Эклипса. Полученные файлы импортируются во вновь созданный проект Эклипса. Если, например, добавился новый сишный исходник к моему проекту, то надо запускать всю описанную цепочку заново и пересоздавать проект в Эклипсе. Второй проект- это другой CMakeLists.txt, в нем я описываю как собрать мой проект, из него будет сгенерён makefile моего проекта.
2. Использовать обычный "Unix Makefiles" генератор которым будет создаан CMakeLists.txt для генерации makefile. При этом файлы проекта Эклипса создаются в самом Эклипсе.
3. Установить в Эклипс плагин CMakeBuilder. Это типа промежуточного звена между Эклипсом и всё тем же CMake. По сути это тот же путь что и второй, только CMakeLists.txt создается не в простом текстовом редакторе, а прямо в Эклипсе.

Мне кажется второй способ более предпочтителен. В первом случае, не понятно зачем генерить файлы проекта из рукописного CMakeLists.txt. Не проще ли проект Эклипса создавать самим эклипсом, пользуясь соответствующим визардом?
Третий способ ставит в зависимость от Эклипса. Мне на данном этапе наплевать стал я зависимым или нет, но потом я думаю, это может помешать мигрировать куда-нибудь. Любые узко специализированные примочки могут оказать медвежью услугу.

Есть ли принципиальные ошибки в выше изложенном ? Если нет, дальше спрашивать буду.

Спасибо!!!!
Go to the top of the page
 
+Quote Post
bureau
сообщение Oct 2 2013, 14:23
Сообщение #673


Знающий
****

Группа: Свой
Сообщений: 625
Регистрация: 22-02-07
Пользователь №: 25 593



Пытаюсь увеличить буфер данных выводимых в консоль. Но даже сняв галку "Limit console output" (Windiws -> Prerefernce->Run/Debug->Console) ничего не изменяется...
Может где-то вручную в конф. файле можно поменять этот параметр?

UP
Windiws -> Prerefernce->C/C++ ->Build->Console
"Limit console output"
Go to the top of the page
 
+Quote Post
сарматъ
сообщение Oct 4 2013, 08:30
Сообщение #674


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

Группа: Участник
Сообщений: 153
Регистрация: 19-11-12
Пользователь №: 74 463



Цитата(Сергей Борщ @ Sep 10 2008, 19:32) *
Поставил эклипсу 3.4.0 ganymede, комплект разработки C/C++. Инсталлировал плагин Zylin embedded cdt 4.5.1. В окне консоли gdb теперь можно вводить команды вручную.

а какое заклинание создает окно консоли gdb?

Цитата(Сергей Борщ @ Sep 5 2013, 14:40) *
В OpenOCD я наблюдал подобное поведение в случае, если в его скрипте нет команды "reset". Удалось это исправить в исходниках, но я не уверен, что починил правильно и в нужном месте. Не знаю, поможет ли это вам, но попробуйте пересобрать с вот этими исправлениями:

эти исправления не помогают избавиться от телнета - как раз позавчера писал об этом, а что эти правки делают?
ресет сбрасывает контроллер же? а хальт нет?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Oct 4 2013, 13:13
Сообщение #675


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (сарматъ @ Oct 4 2013, 10:30) *
а какое заклинание создает окно консоли gdb?
Надо выбрать standard hardware GDB debugger launcher и в настройках появится галочка "verbose console mode".

QUOTE (сарматъ @ Oct 4 2013, 10:30) *
эти исправления не помогают избавиться от телнета - как раз позавчера писал об этом, а что эти правки делают?
Какой телнет? Зачем от него избавляться? Эти правки делают следующее: в hla_interface - если в скрипте не указано подключение линии сброса, то по документации предполагается, что ее нет. В коде это должно выглядеть как будто она в неактивном состоянии. В реальности же переменные остаются со значениями "не инициализаровано", OpenOCD считает, что reset не отпущен и не выполняет опрос состояния отлаживаемого процессора. Не вызывается функция poll() и он не может сообщить gdb что процессор работает. А когда дается команда halt - он без этого опроса не может узнать, что ядро остановилось и что об этом надо сообщить GDB. В hla_target при чтении состояния игнооиоуется переход ядра в любое состояние кроме HALT. Этот патч я вчера отослал и его в целом одобрили. Мне осталось разобраться, как теперь послать доработанный вариант.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post

51 страниц V  « < 43 44 45 46 47 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


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


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