nanorobot 5 28 апреля, 2017 Опубликовано 28 апреля, 2017 (изменено) · Жалоба Скачал и установил JLink Software and Documentation Pack 614d. Добавил к проекту все необходимые файлы. В процессе компиляции получил следующие ругательства In file included from SEGGER_RTT_V614d//Syscalls/SEGGER_RTT_Syscalls_GCC.c:64:0: /usr/local/gcc-arm-none-eabi-5_3-2016q1/arm-none-eabi/include/reent.h:159:17: note: previous declaration of '_write_r' was here extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t)); по отношению к фукции int _write_r(struct _reent *r, int file, const void *ptr, int len); заменил сигнатуру функциии на _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t)); после чего компиляция завершилась успешно Вызвал в main() SEGGER_RTT_ConfigUpBuffer(0, NULL, &buf[0], 256, SEGGER_RTT_MODE_BLOCK_IF_FIFO_FULL); несколькими строками ниже с периодичностью около 2 Гц вызываю SEGGER_RTT_Write(0, "Segger_RTT \r\n", 13);} для контроля, вызов сопровождаю миганием светодиода, Запускаю JLinkExe и выполняю connect. затем запускаю Putty: telnet / localhost / port 19021. Telnet соединения срастается, но никакого вывода в Putty не происходит. Да, JLink не оригинальный, естественно - клон от starterkit. Может быть в этом причина? Так как используется блокирующий вывод процесс(мигание светодиода) длится недолго, затем, когда буфер вывода заполнится, все застревает. Верно ли я понимаю, что освобождение буфера производится выпjлняет JLink(больше некому вроде) Изменено 28 апреля, 2017 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
arhiv6 18 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Вряд ли дело в оригинальности программатора, если к нему JLinkExe цепляется. Можете попробовать с помощью OpenOCD связь проверить: http://we.easyelectronics.ru/arhiv_6/rtt-s...-ot-segger.html Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Вряд ли дело в оригинальности программатора, если к нему JLinkExe цепляется. Можете попробовать с помощью OpenOCD связь проверить: http://we.easyelectronics.ru/arhiv_6/rtt-s...-ot-segger.html Крайне признателен ! Попробую... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 234 28 апреля, 2017 Опубликовано 28 апреля, 2017 · Жалоба Можете попробовать с помощью OpenOCD связь проверить: Какой смысл проверять какими-то сторонними утилитами, если в составе segger-а есть всё необходимое??? ТС-у надо заглянуть в папку установленного ПО Segger-а и ознакомиться с разными утилитами там. Там есть например JFlash.exe, с помощью которой можно и проверить JLink подключившись к МК и прошить/проверить прошивку. И JLinkConfig.exe - для обновления прошивки JLink. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 28 апреля, 2017 Опубликовано 28 апреля, 2017 (изменено) · Жалоба Какой смысл проверять какими-то сторонними утилитами, если в составе segger-а есть всё необходимое??? ТС-у надо заглянуть в папку установленного ПО Segger-а и ознакомиться с разными утилитами там. Там есть например JFlash.exe, с помощью которой можно и проверить JLink подключившись к МК и прошить/проверить прошивку. И JLinkConfig.exe - для обновления прошивки JLink. Проверять JLink на возможность прошить не требуется. Прошивка / отладка ведктся именно с его помощью. Имелись лишь сомнения по поводу его работы в RTT. Изменено 28 апреля, 2017 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 19 мая, 2017 Опубликовано 19 мая, 2017 (изменено) · Жалоба Можете попробовать с помощью OpenOCD связь проверить: http://we.easyelectronics.ru/arhiv_6/rtt-s...-ot-segger.html Попытался запустить описанным по этой ссылке методом. Результат - RTT скрипт OpenOCD либо не находит RTT control block, либо(в случае когда я в скрипте задаю в качестве диапазона поиска всю RAM) находит не по тому адресу (правильный адрес нахожу в окне Expressions), и соответственно выода в SEGGER J-Link RTT Client не происходит. Кому удалось запустить RTT методом описанным по ссылке, поделитесь опытом плизз. Или , кто зарегистрирован на изиэлектроникс, пришлите приглашение для регистрации. Задам вопрос там. Мыло: r*a*i*n*6*2*s*t*e*r собака.гмайл.ком Изменено 19 мая, 2017 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 19 мая, 2017 Опубликовано 19 мая, 2017 · Жалоба RTT технология примечательна тем, что требует уникальных первичных имён переменных и массивов. Если менять имена - то плагин не сможет найти свои данные. Так-же записывается уникальный паттерн в область первого массива на передачу. У него есть стандартная голова, тело - размеры массивов и их местоположение, и пассивное заполнение остатка. Массив не может быть меньше 128 байт. Недостаток технологии - в способе сборки. RTT, также как и EBmonitor поставляется в виде собранной библиотеки, которая уже на стадии линковки подключается к проекту. При этом в самой библиотеке имеется место где переключается тип ядра, это сделано для универсальности. Это-же свойство может стать основной проблемой при сборке проекта. Например при использовании собственного алгоритма выделения памяти - будет вечный сбой. При отладке без выхода из режима программирования - отладчику доступно все использующиеся символьные имена проекта, в этом случае поиск по паттерну не используется. При горячем "подключении" (без ресета) - наличие паттерна - обязательно. RTT и EBmonitor - полные клоны. Могу предложить код который получился для EBmonitor. https://bitbucket.org/AVI-crak/rtos-cortex-...le-view-default Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 19 мая, 2017 Опубликовано 19 мая, 2017 · Жалоба RTT технология примечательна тем, что требует уникальных первичных имён переменных и массивов. Если менять имена - то плагин не сможет найти свои данные. Так-же записывается уникальный паттерн в область первого массива на передачу. У него есть стандартная голова, тело - размеры массивов и их местоположение, и пассивное заполнение остатка. Массив не может быть меньше 128 байт. Признаюсь честно - мало чего понял.. : :( Зато есть куда расти... кстати - один раз срослось, вывод заработал.. Решил добавить вывод во второй виртуальный терминал. Получил сообщение в логе скрипта RTT - Info : RTT already started. вернул все обратно, но ничего не изменилось - Info : RTT already started Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба Признаюсь честно - мало чего понял.. : :( Зато есть куда расти... Понимать следует буквально, нельзя менять названия массивов и структур - RTT перестаёт их находить. Ещё одна вещь, технология RTT выполняет одну попытку поиска своих данных. По этой причине инициализация структур и массивов должна выполняться до первой контрольной точки, чаще всего это шапка майна. Библиотека от RTT (без вмешательства) - инициализирует свои данные до майна. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reflector 0 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба Понимать следует буквально, нельзя менять названия массивов и структур - RTT перестаёт их находить. Nanorobot скачал JLink Software and Documentation Pack, там есть архив с исходниками RTT, никакие либы не нужны, меняй имена как хочешь, или я что-то недопонимаю? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба Nanorobot скачал JLink Software and Documentation Pack, там есть архив с исходниками RTT, никакие либы не нужны, меняй имена как хочешь, или я что-то недопонимаю? дак как то и смысла особенного их менять не просматривается ... :05: Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AVI-crak 0 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба меняй имена как хочешь Можно менять размеры буферов от 128б до "сколько влезет", остальное завязано на плагин - который работает на большой машине. По ссылкам нет си исходников плагина для ID. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Reflector 0 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба Можно менять размеры буферов от 128б до "сколько влезет", остальное завязано на плагин - который работает на большой машине. По ссылкам нет си исходников плагина для ID. Не знаю что там завязано, но я взял исходники, основательно их переделал, запихнул все в класс и давно пользуюсь. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
x893 55 20 мая, 2017 Опубликовано 20 мая, 2017 · Жалоба Не знаю что там завязано, но я взял исходники, основательно их переделал, запихнул все в класс и давно пользуюсь. Аналогично, только без классов. Без всяких библиотек - из исходников. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nanorobot 5 6 июня, 2017 Опубликовано 6 июня, 2017 (изменено) · Жалоба Аналогично, только без классов. Без всяких библиотек - из исходников. Еще раз подниму тему. Делал по ссылке приведенной выше. http://we.easyelectronics.ru/arhiv_6/rtt-s...-ot-segger.html. Получил работоспособный вариант на связке STLink V2 / STM32F373. C клоном JLink от starterkit так толком ничего и не вышло. Возможно руки кривые. Далее возлагал надежды на STLink. Попытался использовать его в связке с STM32F051. И вот здесь успеха добиться не удалось. В консоли все время получаю сообщение "Info : No RTT control block found". Пробовал указывать в скрипте всю RAM камня в качестве области для поика RTT, менял уровень олптимизации компилятора до самого низкого. Но всегда плучал один и тот же результат. RTT control block found. Вроде и путь уже проторенный (с F373) но тем не менее. Может быть все таки STM32F0xx не поддерживает эту возvожность? Изменено 6 июня, 2017 пользователем nanorobot Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться