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

 
 
 
Reply to this topicStart new topic
> Не получается запустить SEGGER RTT, Cortex-M0, Linux/Eclipse/gcc 5_3-2016q1
nanorobot
сообщение Apr 28 2017, 03:07
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Скачал и установил 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(больше некому вроде)

Сообщение отредактировал nanorobot - Apr 28 2017, 06:32
Go to the top of the page
 
+Quote Post
arhiv6
сообщение Apr 28 2017, 07:16
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 506
Регистрация: 21-05-10
Из: Томск
Пользователь №: 57 423



Вряд ли дело в оригинальности программатора, если к нему JLinkExe цепляется. Можете попробовать с помощью OpenOCD связь проверить: http://we.easyelectronics.ru/arhiv_6/rtt-s...-ot-segger.html


--------------------
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Apr 28 2017, 07:45
Сообщение #3


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(arhiv6 @ Apr 28 2017, 13:16) *
Вряд ли дело в оригинальности программатора, если к нему JLinkExe цепляется. Можете попробовать с помощью OpenOCD связь проверить: http://we.easyelectronics.ru/arhiv_6/rtt-s...-ot-segger.html



Крайне признателен ! Попробую...
Go to the top of the page
 
+Quote Post
jcxz
сообщение Apr 28 2017, 08:05
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 3 528
Регистрация: 3-07-08
Из: Омск
Пользователь №: 38 713



Цитата(arhiv6 @ Apr 28 2017, 09:16) *
Можете попробовать с помощью OpenOCD связь проверить:

Какой смысл проверять какими-то сторонними утилитами, если в составе segger-а есть всё необходимое???
ТС-у надо заглянуть в папку установленного ПО Segger-а и ознакомиться с разными утилитами там.
Там есть например JFlash.exe, с помощью которой можно и проверить JLink подключившись к МК и прошить/проверить прошивку.
И JLinkConfig.exe - для обновления прошивки JLink.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Apr 28 2017, 09:13
Сообщение #5


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(jcxz @ Apr 28 2017, 14:05) *
Какой смысл проверять какими-то сторонними утилитами, если в составе segger-а есть всё необходимое???
ТС-у надо заглянуть в папку установленного ПО Segger-а и ознакомиться с разными утилитами там.
Там есть например JFlash.exe, с помощью которой можно и проверить JLink подключившись к МК и прошить/проверить прошивку.
И JLinkConfig.exe - для обновления прошивки JLink.


Проверять JLink на возможность прошить не требуется. Прошивка / отладка ведктся именно с его помощью. Имелись лишь
сомнения по поводу его работы в RTT.

Сообщение отредактировал nanorobot - Apr 28 2017, 09:13
Go to the top of the page
 
+Quote Post
nanorobot
сообщение May 19 2017, 20:42
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(arhiv6 @ Apr 28 2017, 13:16) *
Можете попробовать с помощью 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 собака.гмайл.ком

Сообщение отредактировал nanorobot - May 19 2017, 20:50
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение May 19 2017, 21:45
Сообщение #7


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 16-10-15
Пользователь №: 88 894



RTT технология примечательна тем, что требует уникальных первичных имён переменных и массивов. Если менять имена - то плагин не сможет найти свои данные. Так-же записывается уникальный паттерн в область первого массива на передачу. У него есть стандартная голова, тело - размеры массивов и их местоположение, и пассивное заполнение остатка. Массив не может быть меньше 128 байт.
Недостаток технологии - в способе сборки. RTT, также как и EBmonitor поставляется в виде собранной библиотеки, которая уже на стадии линковки подключается к проекту.
При этом в самой библиотеке имеется место где переключается тип ядра, это сделано для универсальности. Это-же свойство может стать основной проблемой при сборке проекта. Например при использовании собственного алгоритма выделения памяти - будет вечный сбой.

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

RTT и EBmonitor - полные клоны. Могу предложить код который получился для EBmonitor.
https://bitbucket.org/AVI-crak/rtos-cortex-...le-view-default
Go to the top of the page
 
+Quote Post
nanorobot
сообщение May 19 2017, 22:15
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(AVI-crak @ May 20 2017, 03:45) *
RTT технология примечательна тем, что требует уникальных первичных имён переменных и массивов. Если менять имена - то плагин не сможет найти свои данные. Так-же записывается уникальный паттерн в область первого массива на передачу. У него есть стандартная голова, тело - размеры массивов и их местоположение, и пассивное заполнение остатка. Массив не может быть меньше 128 байт.


Признаюсь честно - мало чего понял.. : sad.gif Зато есть куда расти...

кстати - один раз срослось, вывод заработал.. Решил добавить вывод во второй виртуальный терминал. Получил сообщение в логе скрипта RTT - Info : RTT already started.
вернул все обратно, но ничего не изменилось - Info : RTT already started
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение May 20 2017, 07:53
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(nanorobot @ May 20 2017, 04:15) *
Признаюсь честно - мало чего понял.. : sad.gif Зато есть куда расти...

Понимать следует буквально, нельзя менять названия массивов и структур - RTT перестаёт их находить.
Ещё одна вещь, технология RTT выполняет одну попытку поиска своих данных. По этой причине инициализация структур и массивов должна выполняться до первой контрольной точки, чаще всего это шапка майна.
Библиотека от RTT (без вмешательства) - инициализирует свои данные до майна.
Go to the top of the page
 
+Quote Post
Reflector
сообщение May 20 2017, 10:08
Сообщение #10


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 15-07-06
Пользователь №: 18 836



Цитата(AVI-crak @ May 20 2017, 10:53) *
Понимать следует буквально, нельзя менять названия массивов и структур - RTT перестаёт их находить.

Nanorobot скачал JLink Software and Documentation Pack, там есть архив с исходниками RTT, никакие либы не нужны, меняй имена как хочешь, или я что-то недопонимаю?
Go to the top of the page
 
+Quote Post
nanorobot
сообщение May 20 2017, 10:52
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(Reflector @ May 20 2017, 16:08) *
Nanorobot скачал JLink Software and Documentation Pack, там есть архив с исходниками RTT, никакие либы не нужны, меняй имена как хочешь, или я что-то недопонимаю?


дак как то и смысла особенного их менять не просматривается ... 05.gif
Go to the top of the page
 
+Quote Post
AVI-crak
сообщение May 20 2017, 11:06
Сообщение #12


Частый гость
**

Группа: Участник
Сообщений: 132
Регистрация: 16-10-15
Пользователь №: 88 894



Цитата(Reflector @ May 20 2017, 16:08) *
меняй имена как хочешь

Можно менять размеры буферов от 128б до "сколько влезет", остальное завязано на плагин - который работает на большой машине.
По ссылкам нет си исходников плагина для ID.
Go to the top of the page
 
+Quote Post
Reflector
сообщение May 20 2017, 11:10
Сообщение #13


Участник
*

Группа: Участник
Сообщений: 46
Регистрация: 15-07-06
Пользователь №: 18 836



Цитата(AVI-crak @ May 20 2017, 14:06) *
Можно менять размеры буферов от 128б до "сколько влезет", остальное завязано на плагин - который работает на большой машине.
По ссылкам нет си исходников плагина для ID.

Не знаю что там завязано, но я взял исходники, основательно их переделал, запихнул все в класс и давно пользуюсь.
Go to the top of the page
 
+Quote Post
x893
сообщение May 20 2017, 13:51
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 989
Регистрация: 27-10-08
Из: Планета Земля
Пользователь №: 41 226



Цитата(Reflector @ May 20 2017, 14:10) *
Не знаю что там завязано, но я взял исходники, основательно их переделал, запихнул все в класс и давно пользуюсь.

Аналогично, только без классов. Без всяких библиотек - из исходников.
Go to the top of the page
 
+Quote Post
nanorobot
сообщение Jun 6 2017, 10:40
Сообщение #15


Частый гость
**

Группа: Участник
Сообщений: 183
Регистрация: 29-02-08
Пользователь №: 35 503



Цитата(x893 @ May 20 2017, 18:51) *
Аналогично, только без классов. Без всяких библиотек - из исходников.


Еще раз подниму тему. Делал по ссылке приведенной выше. 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ожность?

Сообщение отредактировал nanorobot - Jun 6 2017, 10:41
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd August 2017 - 11:05
Рейтинг@Mail.ru


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