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

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


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 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
 
Start new topic
Ответов
arhiv6
сообщение Apr 28 2017, 07:16
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 633
Регистрация: 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
сообщение May 19 2017, 20:42
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 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
Сообщение #4


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

Группа: Участник
Сообщений: 182
Регистрация: 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
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 244
Регистрация: 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
Сообщение #6


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

Группа: Участник
Сообщений: 182
Регистрация: 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



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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 16:18
Рейтинг@Mail.ru


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