
Официальное зеркало OpenOCD только для чтения (без pull-запросов)
OpenOCD обеспечивает внутричиповое программирование и поддержку отладки с многоуровневой архитектурой интерфейса JTAG и поддержки TAP, включая:
Для взаимодействия с OpenOCD доступны несколько сетевых интерфейсов: telnet, Tcl и GDB. Сервер GDB позволяет OpenOCD функционировать как «удаленная цель» для отладки на уровне исходного кода встраиваемых систем с использованием программы GNU GDB (и других, которые говорят на протоколе GDB, например, IDA Pro).
Этот файл README содержит обзор следующих тем:
Если у вас популярная плата, просто запустите OpenOCD с её конфигурацией, например:
openocd -f board/stm32f4discovery.cfg
Если вы подключаете конкретный адаптер к определённой цели, вам нужно указать как интерфейс JTAG, так и конфигурации цели, например:
openocd -f interface/ftdi/jtagkey2.cfg -c "transport select jtag" \
-f target/ti/calypso.cfg
openocd -f interface/stlink.cfg -c "transport select swd" \
-f target/stm32l0.cfg
После запуска OpenOCD подключите GDB с помощью
(gdb) target extended-remote localhost:3333
Самый простой способ установить OpenOCD — через менеджер пакетов вашей операционной системы.
Debian / Ubuntu
sudo apt install openocd
Fedora
sudo dnf install openocd
macOS (через Homebrew)
brew install open-ocd
Windows (через MSYS2)
pacman -S mingw-w64-x86_64-openocd
Эти пакеты часто более стабильны, чем самая свежая версия из Git, где происходит активная разработка. Упаковщики создают бинарные релизы OpenOCD после того, как разработчики публикуют новые релизы исходного кода. Старые версии OpenOCD не подходят для диагностики проблем в текущем релизе. Пользователям следует поддерживать связь с мейнтейнерами своих дистрибутивов или поставщиками интерфейсов, чтобы регулярно получать соответствующие обновления.
Если вы используете один из этих бинарных пакетов, для получения поддержки или более новых версий обращайтесь к упаковщику. Разработчики OpenOCD не предоставляют прямой поддержки для упакованных бинарных файлов.
Вы являетесь УПАКОВЩИКОМ OpenOCD, если:
Как упаковщик, вы первыми будете получать сообщения о большинстве проблем. Когда вы исправляете эти проблемы для своих пользователей, ваше решение может помочь предотвратить сотни (если не тысячи) других вопросов от других пользователей.
Если что-то не работает, пожалуйста, сообщите разработчикам OpenOCD, как улучшить систему или документацию, чтобы избежать будущих проблем, и следите, чтобы помочь нам убедиться, что проблема будет полностью решена в наших будущих релизах.
Тем не менее, разработчики OpenOCD хотели бы, чтобы вы следовали нескольким рекомендациям:
В дополнение к документации в дереве исходного кода, последние руководства можно просмотреть онлайн по следующим URL-адресам:
OpenOCD User's Guide: http://openocd.org/doc/html/index.html
OpenOCD Developer's Manual: http://openocd.org/doc/doxygen/html/index.html
Они отражают последние версии разработки, поэтому в следующем разделе рассказывается, как собрать полную документацию из пакета.
Для получения дополнительной информации обращайтесь к этим документам или свяжитесь с разработчиками, подписавшись на список рассылки разработчиков OpenOCD: [email protected]
По умолчанию процесс сборки OpenOCD подготавливает документацию в формате Info и устанавливает её стандартным образом, так что info openocd может получить к ней доступ.
Кроме того, руководство пользователя OpenOCD может быть создано в следующих различных форматах:
Если установлена переменная PDFVIEWER, эта команда создаёт и открывает руководство пользователя в PDF.
make pdf && ${PDFVIEWER} doc/openocd.pdf
Если установлена HTMLVIEWER, эта команда создаёт и открывает руководство пользователя в HTML.
make html && ${HTMLVIEWER} doc/openocd.html/index.html
Руководство разработчика OpenOCD содержит информацию о внутренней архитектуре и других деталях кода:
Примечание: убедитесь, что doxygen установлен, введите doxygen --version
make doxygen && ${HTMLVIEWER} doxygen/index.html
AM335x, ARM-JTAG-EW, ARM-USB-OCD, ARM-USB-TINY, AT91RM9200, axm0432, BCM2835, Bus Blaster, Buspirate, Cadence DPI, Cadence vdebug, Chameleon, CMSIS-DAP, Cortino, Cypress KitProg, DENX, Digilent JTAG-SMT2, DLC 5, DLP-USB1232H, embedded projects, Espressif USB JTAG Programmer, eStick, FlashLINK, FlossJTAG, Flyswatter, Flyswatter2, FTDI FT232R, Gateworks, Hoegl, ICDI, ICEBear, J-Link, JTAG VPI, JTAGkey, JTAGkey2, JTAG-lock-pick, KT-Link, Linux GPIOD, Lisa/L, LPC1768-Stick, Mellanox rshim, MiniModule, NGX, Nuvoton Nu-Link, Nu-Link2, NXHX, NXP IMX GPIO, OOCDLink, Opendous, OpenJTAG, Openmoko, OpenRD, OSBDM, Presto, Redbee, Remote Bitbang, RLink, SheevaPlug devkit, Stellaris evkits, ST-LINK (SWO tracing supported), STM32-PerformanceStick, STR9-comStick, sysfsgpio, Tigard, TI XDS110, TUMPA, Turtelizer, ULINK, USB-A9260, USB-Blaster, USB-JTAG, USBprog, VPACLink, VSLLink, Wiggler, XDS100v2, Xilinx XVC/PCIe, Xverve.
ARM: AArch64, ARM11, ARM7, ARM9, Cortex-A/R (v7-A/R), Cortex-M (ARMv{6/7/8}-M), FA526, Feroceon/Dragonite, XScale. ARCv2, AVR32, DSP563xx, DSP5680xx, EnSilica eSi-RISC, EJTAG (MIPS32, MIPS64), ESP32, ESP32-S2, ESP32-S3, Intel Quark, LS102x-SAP, RISC-V, ST STM8, Xtensa.
ADUC702x, AT91SAM, AT91SAM9 (NAND), ATH79, ATmega128RFA1, Atmel SAM, AVR, CFI, DSP5680xx, EFM32, EM357, eSi-RISC, eSi-TSMC, EZR32HG, FM3, FM4, Freedom E SPI, GD32, i.MX31, Kinetis, LPC8xx/LPC1xxx/LPC2xxx/LPC541xx, LPC2900, LPC3180, LPC32xx, LPCSPIFI, Marvell QSPI, MAX32, Milandr, MXC, NIIET, nRF51, nRF52 , NuMicro, NUC910, Nuvoton NPCX, onsemi RSL10, Orion/Kirkwood, PIC32mx, PSoC4/5LP/6, Raspberry RP2040, Renesas RPC HF and SH QSPI, S3C24xx, S3C6400, SiM3x, SiFive Freedom E, Stellaris, ST BlueNRG, STM32, STM32 QUAD/OCTO-SPI для Flash/FRAM/EEPROM, STMSMI, STR7x, STR9x, SWM050, TI CC13xx, TI CC26xx, TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF, XMC1xxx, XMC4xxx.
Файл INSTALL содержит общие инструкции по запуску configure и компиляции исходного кода OpenOCD. Этот файл предоставляется по умолчанию для всех пакетов GNU autotools. Если вы не знакомы с GNU autotools, сначала прочитайте эти инструкции.
Примечание: если файл INSTALL отсутствует, значит, вы используете исходный код из ветки разработки, а не из релиза OpenOCD. В этом случае следуйте инструкциям «Компиляция OpenOCD» ниже, и файл будет создан первой командой ./bootstrap.
Оставшаяся часть этого документа пытается предоставить некоторые инструкции для тех, кто ищет быструю установку.