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

 
 
> Indigo + Yagarto + J-Link, после IAR EWARM
ivainc1789
сообщение Oct 27 2012, 12:45
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



После знакомства с Eclipse Indigo SR2 и установки и настройки тулчейна остаются некоторые вопросы:

1. Проект с пустой main функцией не захотел компилироваться без ошибок при простом подключении библиотеки периферии с сайта ST. Разбор полетов показал, что некоторые исходники библиотеки не видят определения в собственных хидерах. Я долго с этим разбирался, а в результате все решилось простым редактированием соотв хидеров (просто ставим где-нибудь в файле пробел потом его удаляем, сохраняем файл) и ошибки компиляции пропадают... У кого-нибудь такое уже было? И как часто приходится вам сталкиваться с такими глюками в Eclipse?
2. Вторую проблему пока не решил... GCC уже совсем другой компилятор, поэтому наработанный код в IAR у меня тут не работает. Особенно это касается препроцессора. В IARе я устраивал всякие игры с дефайнами и все нормально работало - здесь такие вещи уже не проходят:

Код
#define PINCLR(x) (_PORT_POS(x##p)##->BSRR=##_BIT_BR(x##b))


выдается ошибка:

Код
pasting ")" and "->" does not give a valid preprocessing token    main.c    /IndigoTest/src    line 39    C/C++ Problem
pasting "=" and "_BIT_BR" does not give a valid preprocessing token    main.c    /IndigoTest/src    line 39    C/C++ Problem


какие есть пути для исправления? Я так понимаю, для GCC такие дефайны слишком сложные?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
ivainc1789
сообщение Nov 4 2012, 06:55
Сообщение #2


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



1. На сайте GNU ARM plugin ознакомился с "известными проблемами". Оказывается смена тулчейна до конца не реализована и честно предупреждается, что при такой попытке проект становится нерабочий.
2. Продолжил разбираться с printf. Подключил syscall_minimal.c. Внес необходимые исправления. Теперь проект собирается без ошибок, однако простите за тупизм, но содержимое функции putChar я что-то затрудняюсь написать. В примерах люди используют вывод в UART, но мне этого не нужно ведь printf используется только для отладки J-Link'ом. Кроме того, даже при пустой функции putChar размер bin файла контроллера возрастает с 31кБ до 57кБ что совсем огорчительно. В Иаре на этом же проекте подключение printf стоит 5кБ: с 20кБ до 25кБ. Потому вопрос: возможно ли для Debug испоьзовать легкую оптимизацию с опциями -O1,2,3 ? И не помешает ли это отладке?
3. Насколько я понял, отладка через GDB позволяет только наблюдать значения переменных, ставить точки останова на код. Data брейкпоинт не поддерживается.
4. По make файлам. Может ли кто-нибудь поделиться примером под STM32 + Eclipse? Только содержимое хотелось бы видеть с поддержкой такого: определены директории где находятся И БУДУТ ДОБАВЛЯТЬСЯ си файлы, утилита автоматом их подхватывает и собирает проект. Также если есть какая-нибудь вменяемая дока по make файлам как и сама утилита (проверенная версия) - было бы здорово. И еще. Я так понимаю, что речь о GNU MAKE? Не стоит ли изучать что-то более продвинутое?
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Nov 4 2012, 23:23
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(ivainc1789 @ Nov 4 2012, 08:55) *
В Иаре на этом же проекте подключение printf стоит 5кБ: с 20кБ до 25кБ. Потому вопрос: возможно ли для Debug испоьзовать легкую оптимизацию с опциями -O1,2,3 ? И не помешает ли это отладке?

Нет особого смsсла использовать для отладки уровень оптимизации, отличный от release. За исключением случая, когда нужно убедится что код в принципе может быть работоспособным.


Цитата(ivainc1789 @ Nov 4 2012, 08:55) *
3. Насколько я понял, отладка через GDB позволяет только наблюдать значения переменных, ставить точки останова на код. Data брейкпоинт не поддерживается.

А нельзя ли задействовать jlink-ий сервер (который в трее висит)? На вкладке Breakpoint databreakpoint упоминаются. Или невозможно?
Go to the top of the page
 
+Quote Post
ivainc1789
сообщение Nov 5 2012, 09:58
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 175
Регистрация: 5-01-05
Пользователь №: 1 807



Цитата(_Артём_ @ Nov 5 2012, 03:23) *
Нет особого смsсла использовать для отладки уровень оптимизации, отличный от release. За исключением случая, когда нужно убедится что код в принципе может быть работоспособным.
Откуда такие сведения? Т.е. вам приходилось отлаживать код release? И все работало?

Цитата
А нельзя ли задействовать jlink-ий сервер (который в трее висит)? На вкладке Breakpoint databreakpoint упоминаются. Или невозможно?

Сейчас слегка изучил возможности отладки из под CDT 8.0 :
1. Точки останова только на код с возможностью "наложить" на них действия: выдать звук, продолжить программу через заданное время в сек., выдать лог (текстовый и выполнить некоторый набор инструкций), выполнить некую внеш утилиту. Мне непонятны две вещи: если в качестве лога предлагается выполнить набор инструкций (установлена галка " As expressions", то в каком формате нужно писать этот набор? Это кусок Си кода или еще как? В хелпе не нашел. Попробовал что-то типа " X = 1; " - вроде работает... Далее, при каких таких условиях потребовалось бы выполнить некую утилиту по достижении точки останова? Если кто пользовал, можно ли пример? И наконец, жаль, но вроде как "продолжить программу через несколько сек." - это именно притормозить программу на это время. Я сначала обрадовался, что нашел аналог LiveWatch из IAR, но в Иаре сделано так, что прога не останавливается - просто каждую секунду запрашиваются текущие значения переменных из окна LiveWatch.
2. Можно сделать точку останова типа watchpoint на переменную из ram. По факту чтения или записи возможны все действия, что и в п.1. Это в том числе и то, что предлагает и J-Link'овский GDB сервер.

В целом возможности отладки неплохие, тем более что судя по хелпу из Эклипса эти CDT tools активно развиваются и уже сейчас можно слегка расширить эти возможности установкой доп плагинов.
Знакомясь с Эклипсой, я скомпилировал тестовый проект в нем как через Yagarto/GCC так и через IAR plugin. Думаю, на текущий момент это наиболее оптимальное сочетание средств: с одной стороны используются шикарные возможности редактора Эклипса, с другой есть гибкость в оперативной смене компиляторов GCC / ICC. Не знаю как дальше это пойдет, т. к. Juno загружается на моем весьма недревнем ноуте раза в 3 дольше Indigo...
Только тяжелый вопрос с изучением make файлов как всегда остался пока неразрешенным... )))
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Nov 5 2012, 10:25
Сообщение #5


Гуру
******

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



QUOTE (ivainc1789 @ Nov 5 2012, 12:58) *
Откуда такие сведения? Т.е. вам приходилось отлаживать код release? И все работало?
Только так и отлаживаюсь и все работает. А какой смысл сначала отлаживать другой код, а потом еще отлавливать ошибки, которые вылезут при включении оптимизатора (забытые volatile, гонки и т.д)? Да, есть тонкости - отлаживаться надо с включенным окном дизассемблера, потому что не каждому С-выражению соответствует какой-то код. Да, иногда нельзя поставить точку останова, если этот участок исходника был соптимизирован. Но можно найти нужное место и вставить точку останова в окне дизассемблера.


--------------------
На любой вопрос даю любой ответ
"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

Сообщений в этой теме
- ivainc1789   Indigo + Yagarto + J-Link   Oct 27 2012, 12:45
- - AHTOXA   Цитата(ivainc1789 @ Oct 27 2012, 18:45) в...   Oct 27 2012, 14:10
- - ivainc1789   Переписать что-то не так-то просто оказалось. В IA...   Oct 27 2012, 15:04
- - SSerge   Вообще-то именно те ##, на которые ругается, они л...   Oct 27 2012, 16:00
|- - ivainc1789   Цитата(SSerge @ Oct 27 2012, 20:00) Вообщ...   Oct 27 2012, 19:08
|- - AHTOXA   Извините, я сильно не вчитывался, но может быть та...   Oct 27 2012, 19:11
- - ivainc1789   Осталась давнее предупреждение из файла STM32F0xx_...   Oct 28 2012, 06:26
- - ivainc1789   Вопрос с расширениями IAR решил через функции CMSI...   Oct 30 2012, 05:57
|- - _Артём_   Цитата(ivainc1789 @ Oct 30 2012, 07:57) 1...   Oct 30 2012, 06:36
|- - ivainc1789   Цитата(_Артём_ @ Oct 30 2012, 10:36) Разн...   Oct 30 2012, 10:22
|- - _Артём_   Цитата(ivainc1789 @ Oct 30 2012, 12:22) В...   Oct 30 2012, 20:32
|- - ivainc1789   Цитата(_Артём_ @ Oct 31 2012, 00:32) Проб...   Oct 31 2012, 17:09
|- - _Артём_   Цитата(ivainc1789 @ Oct 31 2012, 19:09) 1...   Oct 31 2012, 19:41
||- - ivainc1789   Цитата(_Артём_ @ Oct 31 2012, 23:41) У ме...   Nov 1 2012, 05:16
||- - Сергей Борщ   QUOTE (ivainc1789 @ Nov 1 2012, 08:16) Я ...   Nov 1 2012, 07:11
|||- - AHTOXA   Цитата(Сергей Борщ @ Nov 1 2012, 13:11) e...   Nov 1 2012, 07:38
||- - _Артём_   Цитата(ivainc1789 @ Nov 1 2012, 07:16) У ...   Nov 1 2012, 16:05
|- - AHTOXA   Цитата(ivainc1789 @ Oct 31 2012, 23:09) 6...   Nov 1 2012, 04:30
|- - demiurg_spb   Цитата(ivainc1789 @ Oct 31 2012, 21:09) 3...   Nov 1 2012, 05:24
|- - _Артём_   Цитата(demiurg_spb @ Nov 1 2012, 07:24) К...   Nov 1 2012, 11:58
||- - demiurg_spb   Во всяком случае мне в это хотелось бы верить А у ...   Nov 1 2012, 12:14
||- - _Артём_   Цитата(demiurg_spb @ Nov 1 2012, 14:14) В...   Nov 1 2012, 12:41
||- - demiurg_spb   Так надо раскрутить и понять откуда ноги растут. Н...   Nov 1 2012, 12:44
||- - _Артём_   Цитата(demiurg_spb @ Nov 1 2012, 14:44) Т...   Nov 1 2012, 12:58
||- - demiurg_spb   нет ни одного f после констант. Но это наверное не...   Nov 1 2012, 13:19
|- - ivainc1789   Цитата(demiurg_spb @ Nov 1 2012, 09:24) д...   Nov 1 2012, 15:32
||- - ivainc1789   Цитата(Сергей Борщ @ Nov 5 2012, 14:25) н...   Nov 5 2012, 15:43
|- - _Артём_   Цитата(ivainc1789 @ Nov 5 2012, 11:58) Т....   Nov 5 2012, 12:59
- - AHTOXA   Цитата(ivainc1789 @ Nov 1 2012, 21:32) Я ...   Nov 4 2012, 08:30
- - ReAl   Цитата(AHTOXA @ Nov 4 2012, 10:30) А вы п...   Nov 4 2012, 09:35


Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 24th August 2025 - 08:44
Рейтинг@Mail.ru


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