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

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

Вызываю функцию в обработчике прерывания Вы скорее всего нарушаете эту аксиому.

Есть исключение - жесткая синхронизация процесса, когда общение с периферией через циклический буфер невозможно из-за привязки к реалтайму. Даже пример приведу. Допустим, нам надо обновить регистры OCRxxx для выдачи ШИМа. Но значения, которые нужны, зависят от самого последнего отсчета АЦП. И тогда ISR_NOBLOCK и удачи в плане чтоб стека хватило :)   

 

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


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

может обновить CDT?

Index->rebuild пробовали?

конечно пробовал - не помогает. К тому же, индексирование работает только в исходниках: *.c, *.cpp

попробуйте в исходнике выделить переменную, объявленную в мейк-файле. Эклипса скажет, что не знает где объявлена эта переменная (красным цветом внизу, слева),

хотя при компиляции все ОК.

 

Я думаю, она помнит значение с последней компиляции

А вот зачем постоянно менять F_CPU я, чесгря, не понимаю :cranky:

не с последней компиляции, а с какой угодно! В эклипсе, отображаемое значение этой переменной может совпасть с реальным (которое в мейк-файле) только после изменения реального значения в мейк-файле, а может и остаться предидущим! И хоть ты тресни: перекомпилируй, Index->rebuild, меняй реальное значение на другие величины или пляши вокруг компа с бубном - отображаемое в эклипсе значение может так и не измениться! А может поменяться с первого раза на правильное.

:bb-offtopic:

Мне не нужно каждый раз менять значение F_CPU, но эта переменная используется у меня для вычисления задержек, и если я захочу использовать этот код в другом проэкте с другй рабочей частотой контроллера, а у меня эклипса не хочет менять когда-то непонятно куда запомненное отображаемое значение этой переменной, это нормально?

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


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

Есть исключение - жесткая синхронизация процесса, когда общение с периферией через циклический буфер невозможно из-за привязки к реалтайму. Даже пример приведу

+1

Да и вообще, если удобнее что-то считать в обработчике прерывания, и это не занимает много времени, то почему бы и не считать? Например, при управлении двигателем, варьировать ШИМ можно только по окончанию периода. Так тут как раз удобнее в таймерном прерывании производить эти модификации и даже посчитать ПИДом текущее значение OCRx.

:bb-offtopic:

_Pasha, похоже Ваш пример тоже от двигателя... или от еще какой силовухи)

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


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

 

_Pasha, похоже Ваш пример тоже от двигателя... или от еще какой силовухи)

Да. Трехфазник.

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


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

И тогда ISR_NOBLOCK и *удачи* в плане чтоб стека хватило :)   

 

Я именно про это.

 

Анатолий.

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

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


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

здравствуйте

 

маленькое замечане.

 

раньше когда работал на Европе, использовал CDT плагин Zylin

так как еклипс использую для разработок и под армы идля линуха и для винды то имел отдельные эклипсы с соответствующими плагинами. естественно особености возникали только при отладке.

 

пожже, после перехода на ганимед обнаружил что для европы есть родной плагин для отладки через JTAG - поставил проверил - работает также как и Zylin'овский. Стало возможным одной еклипсой компилять и дебажить как проекты для винды так и для армов, был првдо косяг - под ганимед плагин для европы ставится и работает, но роабоет криво в плане что глючит парсинг ошибок. это напрягало.

я присал про этот трабл в эту ветку, но тогда устранить ксяг у меня не получилось.

 

вчера обнаружил что для ганимеда появился этот плагин. поставил - парсинг сообщений тулчейна наладился.

пазитиф.

 

мож кто тоже такой сосяг словил.

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


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

Помните пока работает обработчик прерывания, все другие запросы прерываний обрабатываться не могут,
Я тоже выскажу свой протест. Не надо таких заявлений. Какой-нибудь начинающий программист может подумать, что это и вправду так.

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


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

Я тоже выскажу свой протест. Не надо таких заявлений. Какой-нибудь начинающий программист может подумать, что это и вправду так.

 

Да, я погорячился и выводы из правила были сделаны очень жесткими.

 

> Никакой обработки данных в прерывании!!

 

Кончо-же если обработать данные соизмеримо по времени, с сохранением их в буфере, их выгоднее обрабатывать в прерывании. (Соизмеримо для меня это быстрее или в несколько раз 2..5..10 дольше).

 

> Помните пока работает обработчик прерывания, все другие запросы прерываний обрабатываться не могут

 

Да, эта фраза относиться только к контроллерам с одноуровневой системой прерываний, В общем случае она должна быть уточнена словами про приоритеты прерываний, и про вложенные прерывания. Я писал ее в контексте контролеров AVR.

 

Что касаеться вложенных прерываний то уже про это писали: "...и удачи в плане чтоб стека хватило", тоесть это только для приложений от которых требуется чтобы они иногда работали ...ну или почти всегда.

 

Да, из любого правила можно найти исключения: В моем приложении только одно прерывание....; Я посчитал время выполнения по тактам и уверен что могу считать синус в моем обработчике прерывания... Но как только количество обработчиков в Вашем приложении приблизиться к десятку, Вы вольно или не вольно будете делать их быстрыми, для того чтобы они друг другу не мешали.

 

Анатолий.

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


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

Какой-нибудь начинающий программист может подумать...

Нормальный человек воспримет это как вектор, в котором надо располагать свои мысли. Политика, то бишь. А исключения из правил - они, в принципе, видны невооруженным глазом. Кстати, есть еще - прерывания, связанные с обработкой I2C, и хитрожопрукое мультиплексирование по каналам АЦП. Опять же, в контексте AVR.

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


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

Ув. гуру, поскажите плиз, если кто видал такое - при попытке просмотра содержимого регистров во время пошаговой отладки в эклипсе - выскакивает сообщение - "Error Label Job" с исключением "java.lang.FormatNumberException". В чём может быть причина и как её победить ? ОС - линух федора 7, эклипса - версии 3.3.2 (Europa).

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


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

вчера обнаружил что для ганимеда появился этот плагин. поставил - парсинг сообщений тулчейна наладился.

пазитиф.

 

мож кто тоже такой сосяг словил.

 

Угумс. Такой же трабл получил. Где плагин обнаружился то?

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


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

Угумс. Такой же трабл получил. Где плагин обнаружился то?

 

http://download.eclipse.org/tools/cdt/releases/ganymede

CDT Optional Features

Eclipse C/C++ GCD Hardware Debugging

 

 

ставим этот плагин и наслаждаемся

я например в одной эклипсе пишу прошивку для АРМ девайса и хост QT-гуЁвый терминал, отлаживаю в одном флаконе! Красота. На винде и линухе, Ляпота!

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


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

Вчера вышел обновленный eclipse-cpp-ganymede-SR2.

Список обновлений:

org.eclipse.cdt    5.0.2.200902130801
org.eclipse.cdt.mylyn    5.0.2.200902130801
org.eclipse.cdt.platform    5.0.2.200902130801
org.eclipse.cvs    1.1.2.R342_v20090122-7C79E9x9sLM1t6M9YD7_A7
org.eclipse.epp.usagedata.feature    1.0.1.R200809220400
org.eclipse.mylyn.bugzilla_feature    3.0.5.v20090218-1800-e3x
org.eclipse.mylyn.context_feature    3.0.5.v20090218-1800-e3x
org.eclipse.mylyn.ide_feature    3.0.5.v20090218-1800-e3x
org.eclipse.mylyn.team_feature    3.0.5.v20090218-1800-e3x
org.eclipse.mylyn_feature    3.0.5.v20090218-1800-e3x
org.eclipse.platform    3.4.2.r34x_v20081010-9I96EiLElhh3qWoXHb-Nz-c-45TPOR8EvkPkYu

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


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

Добрый день, собираюсь отлаживать ПО под LPC2294, настрайваю среду разработки (Linux, OpenSuse 11.1) Помогите, пожалуйста, найти самый свежий (4.2.1 ?) Zylin Embedded CDT, совместимый с Eclipse 3.4.2. Дело в том, что ссылка на офоициальном сайте Zylin на странице http://opensource.zylin.com/embeddedcdt.html недоступна. И поясните, пожалуйста, что еще нужно в довесок к Zylin CDT? Я читал о каком-то embedded CDT, но не понял, зачем он нужен. И еще, нужен все-таки Eclipse C/C++ CDT, или его нужно убивать, прежде чем ставить Zylin, как я прочел на каком-то форуме?

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


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

Добрый день, собираюсь отлаживать ПО под LPC2294, настрайваю среду разработки (Linux, OpenSuse 11.1) Помогите, пожалуйста, найти самый свежий (4.2.1 ?) Zylin Embedded CDT, совместимый с Eclipse 3.4.2. Дело в том, что ссылка на офоициальном сайте Zylin на странице http://opensource.zylin.com/embeddedcdt.html недоступна. И поясните, пожалуйста, что еще нужно в довесок к Zylin CDT? Я читал о каком-то embedded CDT, но не понял, зачем он нужен. И еще, нужен все-таки Eclipse C/C++ CDT, или его нужно убивать, прежде чем ставить Zylin, как я прочел на каком-то форуме?

Только что прошел по ссылке - доступна. Там написано - убивать не надо, это довесок (патч) официального CDT.

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


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

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

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

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

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

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

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

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

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