OpenOCD - это инструмент с открытым исходным кодом , который обеспечивает поддержку многих недорогих отладчиков JTAG / SWD, которые не поставляются с собственным программным обеспечением. Инструмент OpenOCD очень гибкий и мощный, однако в большинстве случаев он требует некоторой начальной настройки. VisualGDB упрощает начальную настройку, предоставляя пользовательский интерфейс с ярлыками для наиболее часто используемых функций.

VisualGDB может автоматически устанавливать следующие форки OpenOCD в зависимости от отлаживаемого устройства:

Форк OpenOCD Оригинальная вилка Рекомендуемые устройства
OpenOCD-ST https://github.com/STMicroelectronics/OpenOCD Многоядерные устройства STM32H7
OpenOCD-RP2040 https://github.com/raspberrypi/openocd/ Raspberry Pi Pico (RP2040)
OpenOCD-STM32MP https://github.com/STMicroelectronics/device-stm-openocd STM32MP1
OpenOCD-Kendryte https://github.com/kendryte/openocd-kendryte Kendryte K210
OpenOCD-ESP8266 https://github.com/projectgus/openocd ESP8266
OpenOCD-ESP32 https://github.com/espressif/openocd-esp32 ESP32
OpenOCD-Mainline git: //git.code.sf.net/p/openocd/code Все остальные устройства (включая обычный STM32)

VisualGDB предоставляет удобный графический интерфейс для настройки OpenOCD и управления драйверами отладчика JTAG. В большинстве случаев вы можете просто выбрать интерфейс отладки и целевое устройство, и VisualGDB настроит OpenOCD автоматически:вы всегда можете настроить параметры OpenOCD, развернув представление «Дополнительные настройки» и отредактировав командную строку OpenOCD или используемые команды GDB. , чтобы начать сеанс отладки.

Различия между Mainline OpenOCD и ST Fork

Основная линия OpenOCD надежно поддерживает большинство обычных устройств на базе ARM (включая устройства STM32). Однако в нем отсутствует поддержка отладки многоядерных устройств STM32H7 с помощью ST-Link, и для некоторых низкоуровневых функций используются несколько иные реализации.

Мы рекомендуем использовать основной OpenOCD для большинства конфигураций отладки, если вам не нужно одновременно отлаживать оба ядра многоядерного устройства.

Если вы планируете отладку нескольких ядер или испытываете проблемы с обычной веткой OpenOCD, рассмотрите возможность использования ST-вилки. Он основан на той же кодовой базе, что и версия, поставляемая с STM32CubeIDE, и должна вести себя так же.