[Решен] ST-UTIL & GDB работал один раз - теперь умирает

Доктек
Сб 21 июля 2018 г. 12:06
После некоторого полезного ввода этого форума и некоторых проб и ошибок с командами я получил ST-UTIL и GDB отлично поработать прошлой ночью. Но когда я попробовал те же команды сегодня, это с треском терпится с треском. Я использую Ubuntu 16.04. Вот что я сделал:
Моя программа тестирования (эскиз, если нужно), построена в Arduino. Это создает каталог в /tmp, который имеет .эльф.
Я начинаю ST-UTIL из каталога STLINK с: ~/ST-UTIL -S 2.1 -p 2468. Он начинается с соответствующих сообщений и ожидает GDB.
Я начинаю GDB из другого командного окна с: GDB [arduiinofile].Ино.эльф. Без проблем.
Но затем: Целевая расширенная версия: 2468 и все разваливается.
Вот часть вывода. Перед этим сообщения выглядят нормально. После того, как это наступает более либеусб.
2018-07-20T16:46:33 INFO /local/data/work/stm32/repo/stlink/src/gdbserver/gdb-server.c: Listening at *:2468... [!] send_recv send request failed: LIBUSB_ERROR_TIMEOUT [!] send_recv STLINK_DEBUG_FORCEDEBUG [!] send_recv send request failed: LIBUSB_ERROR_TIMEOUT [!] send_recv STLINK_DEBUG_RESETSYS [!] send_recv send request failed: LIBUSB_ERROR_TIMEOUT [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT [!] send_recv send request failed: LIBUSB_ERROR_TIMEOUT [!] send_recv STLINK_JTAG_READDEBUG_32BIT 2018-07-20T16:47:37 INFO /local/data/work/stm32/repo/stlink/src/gdbserver/gdb-server.c: Found 9 hw breakpoint registers [!] send_recv send request failed: LIBUSB_ERROR_TIMEOUT [!] send_recv STLINK_JTAG_WRITEDEBUG_32BIT

Доктек
Сб 21 июля 2018 г. 12:17
Упс! Вызов ST-UTIL выполняется как ./ut-util, а не ~/ut-util. Извините за путаницу.

Доктек
Сб 21 июля 2018 г., 17:08
Почему это было решено?? Все, что я сделал, это уточнил одну строку - только опечатка. Больше ничего не изменилось.

Проблема остается той же! Я просто не хотел, чтобы кто -то думал, что было тривиальное решение.

Пожалуйста, удалите решинный маркер.

Спасибо.

Рик Кимбалл
Сб 21 июля 2018 г. 18:12
Может быть, вы могли бы попробовать мой скрипт, который использует OpenOCD вместо ST-UTIL.

Я заметил, что в других постах вы, кажется, пытаетесь отладить чип STM32L0, поэтому вам придется изменить эту линию:
... openocd ${DEBUG_FLG} -f interface/stlink.cfg -f target/stm32l0x.cfg \ -c "program ${HEX_FILE} verify reset exit" ... -e openocd -f interface/stlink.cfg -f target/stm32l0x.cfg & ...

Рик Кимбалл
Сб 21 июля 2018 г., 19:49
[Доктек - Сб 21 июля 2018 г. 12:06] - Я начинаю GDB из другого командного окна с: GDB [arduiinofile].Ино.эльф. Без проблем.
Это неправильная команда для запуска. Он запускает GDB, связанный с вашим рабочим столом (скорее всего, Intel и Linux), вам нужно запустить:

$ arm-none-eabi-gdb -ex 'target-remote: 2468' [arduinofile].Ино.эльф

Я давно не управлял ST-UTIL, у него все еще есть проблемы с поиском источника и правильной работы. Вот почему я перешел на OpenOcd.

[Редактировать] Я пошел и обнаружил, что ST-UTIL из каталога пакетов инструментов STM32DUINO, и он, кажется, работает нормально [/Редактировать]

Доктек
Сб 21 июля 2018 г. 20:29
Спасибо за ваши ответы. Позвольте мне сначала обратиться к второму.
Это неправильная команда для запуска. Он запускает GDB, связанный с вашим рабочим столом (скорее всего, Intel и Linux), вам нужно запустить: Да, еще одна опечатка. Я использую версию Arm-None-Eabi, иначе она никогда бы не сработала. Как я уже упоминал, это работало отлично.

Спасибо за проверку ST-UTIL. Когда я пытаюсь запустить его, это вообще не сработает, если я выберу порт 1234. Похоже, работает с портом 2468, но даже тогда он часто не может правильно идентифицировать мой чип процессора и вместо этого определяет чип ST-Link (я думаю, F-103). Что меня действительно беспокоит, так это то, что я видел, как это отлично работает с той же настройкой и одинаковыми командами. Аррг!

Что касается вашего первого поста, вы правы в отношении чипа. Я работаю с STM32L053R8 на нуклео. Моя цель - использовать 32L031G6U, но я хочу научиться спотыкаться, прежде чем попытаться упасть.

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

Еще раз большое спасибо за вашу помощь и предложения.

Рик Кимбалл
Сб 21 июля 2018 г., 21:56
ARM-None-Eabi-GDB и OpenOCD являются частью SAMD Core. Похоже, что они держали это в курсе, хотя. У него нет более новых конфигураций для Stlink-V2.1 или чипсы STM32L0X.
[Доктек - Сб 21 июля 2018 г. 20:29] - Хотя мне очень нравится созданный вами подход, я надеялся заставить отладка работать без необходимости делать дополнительную настройку и загрузки. Я в порядке со всем этим, но я хотел минимальный подход накладных расходов для тех, кто не привык командовать и т. Д.
Если вы хотите, чтобы наименьший накладной путь, вы должны посмотреть на использование зонда Black Magic. Это требует только Arm-none-eabi-gdb. Ничего больше.
Вот что я делаю, чтобы загрузить и запустить отладку с BMP: платформа.TXT написал:# Blackmagic Desest+Debug
инструменты.bmp_debug.порт =/dev/ttyacm0
инструменты.bmp_debug.скорость = 115200

инструменты.bmp_debug.Путь =
инструменты.bmp_debug.cmd = arm-none-eabi-gdb
инструменты.bmp_debug.загрузить.параметры.verbose =
дураки.bmp_debug.загрузить.параметры.тихо = -q
инструменты.bmp_debug.загрузить.pattern = xterm -bg #ffffe0 -fg #000000 -t 'arduino debugger' -e "{path} {cmd}" -cd = {build.path} -ex "file {build.Project_name}.eff "-n {speed} {upload.verbose} -ex 'set paguncation off' -ex 'set inform off' -ex 'set mem oincescabite -by defaul Off' -ex "Target Extended -Remote {Port}" -ex "Monitor SWDP_SCAN" -ex "Прикрепите 1 "-ex" Mayout Split "-ex" загрузка "-ex" tb setup "-ex" run "{build.Project_name}.эльф

Рик Кимбалл
Сб 21 июля 2018 г. 22:24
У меня, вероятно, 4 или 5 различных способов запуска сервера GDB с помощью устройства Stlink. (ST-UTIL, STLINK GDB SERVER, OPENOCD, Eclipse, System Workbench)

Однако, если вы хотите что -то, что действительно поддерживается, вы должны загрузить и установить последнюю бесплатную атоллическую Truestudio. Этот ранее дорогой инструмент развития коммерческого качества был приобретен ST Microelectronics в конце прошлого года. Раньше он поддерживал широкий спектр поставщиков рук. Св. Их заставил поддержать что -либо, а не ST, а затем это было свободным и неограниченным.

Однако вам не нужно запускать атоличную IDE, чтобы использовать свой GDB -сервер. Чтобы начать, запустить:

$ bash /opt /atollic_truestudio_for_stm32_x86_64_9.0.0/servers/st-link_gdbserver/st-link_gdbserver.шнур

Затем вы можете подключиться к нему с:

$ arm-none-eabi-gdb -ex 'target remote: 61234' мигание.Ино.эльф

Работает красиво и быстро, и просто работает.

Доктек
Sun 22 июля 2018 г. 12:49
Спасибо за всю информацию! Я очень ценю, но вы, вероятно, можете понять, что я сейчас нахожусь в режиме пить. Вот мое мышление:

Я убежден, что использование ST-UTIL-плохой план. Это вышло.

Мне очень нравится внешний вид вашего подхода, изменяя среду Arduino. Тем не менее, меня немного обеспокоен вашим комментарием ARM-None-Eabi-GDB и OpenOCD являются частью SAMD Core. Похоже, что они держали это в курсе, хотя. У него нет более новых конфигураций для Stlink-V2.1 или чипсы STM32L0X. Означает ли это, что ваш подход Arduino не будет работать для чипсов, которые я хочу использовать?

Я собираюсь заглянуть в зонд черной магии. У меня есть старая доска ST Discovery с STLINK версии 1. Я собираюсь обновить это, если это возможно.

Похоже, атоллический сервер GDB может быть лучшим планом. Я попытаюсь найти и установить его.

Наконец, вы наблюдаете: 99.9% пользователей Arduino не заботятся о отладке, они думают, что серийный порт был сделан для отладки. Пока это правда, 99.9% используют только отладку в печатном. Никто не хочет ездить на велосипеде с тренировочными колесами. Так что они захотят возможность, даже если они никогда не используют ее. Я не уверен, как это будет разыграться.

Рик Кимбалл
Солнце 22 июля 2018 г. 1:17
[Доктек - Солнце 22 июля 2018 г. 12:49] - Мне очень нравится внешний вид вашего подхода, изменяя среду Arduino. Тем не менее, меня немного обеспокоен вашим комментарием ARM-None-Eabi-GDB и OpenOCD являются частью SAMD Core. Похоже, что они держали это в курсе, хотя. У него нет более новых конфигураций для Stlink-V2.1 или чипсы STM32L0X. Значит ли это, что ваш подход Arduino не будет работать для чипсов, которые я хочу использовать?
Если вы установите OpenOCD, используя утилиты Apt Linux, он поддерживает все.

Мой комментарий был больше о том, что вы получаете по умолчанию при установке ядер от менеджера библиотеки Arduino. Arduino openocd Binary далеко за последним кодом Openocd.

Доктек
Солнце 22 июля 2018 г. 22:06
Согласно вашему предложению (одно из многих), я загрузил и установил атоллические инструменты с St. Это загрузка 750 МБ, но после установки сервер GDB работает отлично! Мне пришлось обновить свою ST-Link, но есть банка Java для этого. Используйте Sudo, и он также работает нормально. С подключенным и запуска Atollic GDB-сервера я подключился к ARM-None-Eabi-GDB и успешно загрузил и отладил свой код!

Не могу поблагодарить вас за всю помощь! Далее я хочу больше взглянуть на использование ваших инструментов Arduino / openocd. Но пока я могу продолжить свой проект.

Вы можете отметить это как решенное сейчас!