|
|
  |
Вопросы по Eclipse, CDT, Zylin embedded CDT, предлагаю обсуждать тут, может потом FAQ выжмем |
|
|
|
Aug 6 2008, 14:31
|
Частый гость
 
Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906

|
Уважаемые коллеги!!! Кто-нить сталкивался с проблемой такого характера в ECLIPSE (а может это руки у меня раскривушные). В общем, собираю (давно уже) проекты в эклипсе для AT91SAM7x256 (под FreeRTOS). Причем и мэйкфайлы приходилось править (свои файлы включать, убирать, пути другие прописывать) и проект ребилдить (clean all) - никаких проблем не возникало. А недавно вот начала работать над протоколом ModbusRTU (уже почти закончила) и надо было добавить к стандарному makefile 2 файлика - один в Thumb режиме компилится (simple_serial.c), а другой в ARM (simple_serial_ISR.c). Все скомпилилось, работает. Но теперь, когда я хочу добавить в мэйкфайл какие-нить еще необходимые файлы (например для работы с MMC картой), проек компилится без ошибок, но бинарник не пашет, то есть задачи не запускаются и т. д. (хотя по отдельности modbus и mmc) работают. Приходится опять проект пересобирать и все функции валить в один файл (simple_serial.c) - и, о чудо все работает. Помогите, плз, кто сталкивался с подобным, или тыкните носом в ошибку В один файл не особо хочется все настройки и функции пихать!
|
|
|
|
|
Aug 7 2008, 17:39
|

Частый гость
 
Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250

|
Цитата(ZAA @ Aug 6 2008, 18:31)  Уважаемые коллеги!!! Кто-нить сталкивался с проблемой такого характера в ECLIPSE (а может это руки у меня раскривушные). ... Помогите, плз, кто сталкивался с подобным, или тыкните носом в ошибку В один файл не особо хочется все настройки и функции пихать! С 99% уверенностью можно сказать, что ошибка где-то в make-файле, а его то Вы и не удосужились показать.
|
|
|
|
|
Aug 11 2008, 05:08
|
Частый гость
 
Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906

|
Цитата(injen-d @ Aug 7 2008, 20:39)  С 99% уверенностью можно сказать, что ошибка где-то в make-файле, а его то Вы и не удосужились показать. Прикрепляю текст мэйкфайла)
|
|
|
|
|
Aug 11 2008, 15:14
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(ZAA @ Aug 11 2008, 08:08)  Прикрепляю текст мэйкфайла) Код RTOSDemo.elf : $(THUMB_OBJS) $(ARM_OBJS) boot.s Makefile $(CC) $(CFLAGS) $(ARM_OBJS) $(THUMB_OBJS) $(LIBS) boot.s $(LINKER_FLAGS) Что такое boot.s? Если исходник- то почему он примешан в линковку? Если объектник - то почему такое странное имя? Не помешает еще скрипт линкера. Подозрение на то, что загрузочный код попадает не по тем адресам. Я так понимаю компиляция и линковка идет без ошибок и варнингов? Переставте объектный файл с векторами в самое начало перед $(ARM_OBJS) или в самом $(ARM_OBJS) поставте его первым в списке.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
|
Aug 11 2008, 15:38
|
Частый гость
 
Группа: Участник
Сообщений: 141
Регистрация: 10-02-08
Из: Екб
Пользователь №: 34 906

|
Цитата(amw @ Aug 11 2008, 18:14)  Я так понимаю компиляция и линковка идет без ошибок и варнингов? Переставте объектный файл с векторами в самое начало перед $(ARM_OBJS) или в самом $(ARM_OBJS) поставте его первым в списке. Спасибо за совет. Завтра попробую. Да, все компилируется без ошибок.
Сообщение отредактировал ZAA - Aug 11 2008, 15:39
|
|
|
|
|
Sep 10 2008, 15:32
|

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

|
Отвечаю на некоторые свои же вопросы. Цитата(Сергей Борщ @ Apr 4 2008, 13:43)  Вопрос третий - как поставить точку останова на конкретный адрес не перезапуская отладку? Про break *addres в Debug dialog->commands->'Run' commands я знаю, но это требует перезапуска отладки. На строку в исходнике поставить можно, а если мне надо поставить на конкретную команду, причем не дожидаясь пока эта команда попадет в окно дизассемблера? Поставил эклипсу 3.4.0 ganymede, комплект разработки C/C++. Инсталлировал плагин Zylin embedded cdt 4.5.1. В окне консоли gdb теперь можно вводить команды вручную. Цитата(Сергей Борщ @ Apr 4 2008, 13:43)  Вопрос четвертый - как его заставить показать в окне дизассемблера кусок с произвольного адреса или как "пролистать" дизассемблированный текст дальше вверх-вниз? Попутный вопрос - можно ли его заставить в этом окне показывать команды по порядку адресов - мне он часто показывает команды с пропусками или в причудливо перемешанном порядке. Частично решается вводом команды disassemble адрес1 адрес2 в консоли gdb. Цитата(Сергей Борщ @ Apr 4 2008, 13:43)  Вопрос пятый - (ARM) можно ли как-то сбросить ядро не перезапуская сеанс отладки? Т.е. легким движением перевести его в ARM, SYSTEM, записать в PC 0 и остановить его на нулевом адресе. Опять же - monitor reset в консоли. Вопрос к админам: Можно ли (и как) в этой ветке первым сообщением поместить выжимку вопросов и ответов из этого обсуждения? Можно ли (и как) почистить эту ветку, чтобы первым сообщением висели вопросы с ответами, а ниже - вопросы, на которые пока нет ответов, и по мере появления ответов переносить вопросы в первое сообщение?
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Oct 16 2008, 16:28
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 27-07-05
Пользователь №: 7 138

|
В CDT 5.0 указано поддержка doxygen Цитата Doxygen editor support (plus framework) Что имеется в виду? Aвтовставка комментариев doxygen? Тогда как это работает? Мне не удалось заставить Eclipse вставить комментарий.
|
|
|
|
|
Oct 17 2008, 12:50
|
Участник

Группа: Новичок
Сообщений: 26
Регистрация: 27-07-05
Пользователь №: 7 138

|
Цитата(xelax @ Oct 17 2008, 12:39)  У меня вставляет шапки в файлы, а также подсвечивает doxygen'овский синтаксис. А подробнее можно?. Пишу я к примеру int foo(int x, int y){}. Что нужно нажать/вызвать для вставки Eclips'ой doxygen комментария ?
|
|
|
|
|
Oct 17 2008, 13:42
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
Цитата(ikX @ Oct 17 2008, 16:50)  А подробнее можно?. Пишу я к примеру int foo(int x, int y){}. Что нужно нажать/вызвать для вставки Eclips'ой doxygen комментария ? Кликаешь на проекте Properties -> C/C++ General ставишь галочку Enable project specific settings и выбираешь Documentation Tool Doxygen. Шапку у меня генерит для файла, а не для каждой функции. Наверное можно сделать и для каждой функции. Я не пытался. Очень удобно то, что расцвечивает синтаксис doxygen.
|
|
|
|
|
Oct 20 2008, 04:58
|
Знающий
   
Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153

|
Цитата(ikX @ Oct 17 2008, 16:50)  А подробнее можно?. Пишу я к примеру int foo(int x, int y){}. Что нужно нажать/вызвать для вставки Eclips'ой doxygen комментария ? Если написать int foo(int a, int b ) и перед функцией ввести /**, то автоматом вставится примерно такая шапка: Код /** * * @param a * @param b * return */ Кроме того, внутри doxygen-комментариев работает автокомплит по его ключевым словам. Цитата(xelax @ Oct 17 2008, 17:42)  Шапку у меня генерит для файла, а не для каждой функции. У шапки файла, насколько я понимаю, ноги растут от шаблонов файлов, а не от doxygen-а.
|
|
|
|
|
Oct 20 2008, 07:24
|

Местный
  
Группа: Свой
Сообщений: 370
Регистрация: 7-11-06
Пользователь №: 22 035

|
Цитата(Непомнящий Евгений @ Oct 20 2008, 08:58)  У шапки файла, насколько я понимаю, ноги растут от шаблонов файлов, а не от doxygen-а. Скорее всего так и есть. /** - это уже и есть doxygen тэг.
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|