Перейти к содержанию
    

Вопросы по Eclipse, CDT, Zylin embedded CDT

Уважаемые коллеги!!! Кто-нить сталкивался с проблемой такого характера в ECLIPSE (а может это руки у меня раскривушные).

 

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

 

Помогите, плз, кто сталкивался с подобным, или тыкните носом в ошибку :help:

 

В один файл не особо хочется все настройки и функции пихать!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые коллеги!!! Кто-нить сталкивался с проблемой такого характера в ECLIPSE (а может это руки у меня раскривушные).

...

Помогите, плз, кто сталкивался с подобным, или тыкните носом в ошибку :help:

 

В один файл не особо хочется все настройки и функции пихать!

С 99% уверенностью можно сказать, что ошибка где-то в make-файле, а его то Вы и не удосужились показать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

С 99% уверенностью можно сказать, что ошибка где-то в make-файле, а его то Вы и не удосужились показать.

Прикрепляю текст мэйкфайла)

Makefile.txt

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Прикрепляю текст мэйкфайла)

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) поставте его первым в списке.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я так понимаю компиляция и линковка идет без ошибок и варнингов?

Переставте объектный файл с векторами в самое начало перед $(ARM_OBJS) или в самом $(ARM_OBJS) поставте его первым в списке.

Спасибо за совет. Завтра попробую. Да, все компилируется без ошибок.

Изменено пользователем ZAA

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Отвечаю на некоторые свои же вопросы.

Вопрос третий - как поставить точку останова на конкретный адрес не перезапуская отладку? Про break *addres в Debug dialog->commands->'Run' commands я знаю, но это требует перезапуска отладки. На строку в исходнике поставить можно, а если мне надо поставить на конкретную команду, причем не дожидаясь пока эта команда попадет в окно дизассемблера?
Поставил эклипсу 3.4.0 ganymede, комплект разработки C/C++. Инсталлировал плагин Zylin embedded cdt 4.5.1. В окне консоли gdb теперь можно вводить команды вручную.
Вопрос четвертый - как его заставить показать в окне дизассемблера кусок с произвольного адреса или как "пролистать" дизассемблированный текст дальше вверх-вниз? Попутный вопрос - можно ли его заставить в этом окне показывать команды по порядку адресов - мне он часто показывает команды с пропусками или в причудливо перемешанном порядке.
Частично решается вводом команды disassemble адрес1 адрес2 в консоли gdb.
Вопрос пятый - (ARM) можно ли как-то сбросить ядро не перезапуская сеанс отладки? Т.е. легким движением перевести его в ARM, SYSTEM, записать в PC 0 и остановить его на нулевом адресе.
Опять же - monitor reset в консоли.

 

Вопрос к админам: Можно ли (и как) в этой ветке первым сообщением поместить выжимку вопросов и ответов из этого обсуждения?

Можно ли (и как) почистить эту ветку, чтобы первым сообщением висели вопросы с ответами, а ниже - вопросы, на которые пока нет ответов, и по мере появления ответов переносить вопросы в первое сообщение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

На мой взгляд, очень интересная вводная лекция о работе в Eclipse.

 

http://www.artlebedev.ru/tools/technogrett...e-introduction/

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день.

Помогите составить необходимый минимум компонентов из плагина СDT.

ИМХО, многое из состава CDT не так и необходимо.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В CDT 5.0 указано поддержка doxygen

Doxygen editor support (plus framework)

Что имеется в виду? Aвтовставка комментариев doxygen? Тогда как это работает? Мне не удалось заставить Eclipse вставить комментарий.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В CDT 5.0 указано поддержка doxygen

 

Что имеется в виду? Aвтовставка комментариев doxygen? Тогда как это работает? Мне не удалось заставить Eclipse вставить комментарий.

 

У меня вставляет шапки в файлы, а также подсвечивает doxygen'овский синтаксис. Возможно умеет большее, пробовать не пытался.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня вставляет шапки в файлы, а также подсвечивает doxygen'овский синтаксис.

А подробнее можно?. Пишу я к примеру int foo(int x, int y){}. Что нужно нажать/вызвать для вставки Eclips'ой doxygen комментария ?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А подробнее можно?. Пишу я к примеру int foo(int x, int y){}. Что нужно нажать/вызвать для вставки Eclips'ой doxygen комментария ?

Кликаешь на проекте

Properties -> C/C++ General

ставишь галочку Enable project specific settings и выбираешь Documentation Tool Doxygen.

 

Шапку у меня генерит для файла, а не для каждой функции. Наверное можно сделать и для каждой функции. Я не пытался.

Очень удобно то, что расцвечивает синтаксис doxygen.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А подробнее можно?. Пишу я к примеру int foo(int x, int y){}. Что нужно нажать/вызвать для вставки Eclips'ой doxygen комментария ?

 

Если написать int foo(int a, int b ) и перед функцией ввести /**, то автоматом вставится примерно такая шапка:

/**
*  
* @param a
* @param b
* return
*/

 

Кроме того, внутри doxygen-комментариев работает автокомплит по его ключевым словам.

 

Шапку у меня генерит для файла, а не для каждой функции.

У шапки файла, насколько я понимаю, ноги растут от шаблонов файлов, а не от doxygen-а.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У шапки файла, насколько я понимаю, ноги растут от шаблонов файлов, а не от doxygen-а.

 

Скорее всего так и есть.

/** - это уже и есть doxygen тэг.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...