
Espelho oficial somente leitura do OpenOCD (sem pull requests)
O OpenOCD fornece suporte de programação e depuração no chip com uma arquitetura em camadas de interface JTAG e suporte TAP, incluindo:
Várias interfaces de rede estão disponíveis para interagir com o OpenOCD: telnet, Tcl e GDB. O servidor GDB permite que o OpenOCD funcione como um "alvo remoto" para depuração em nível de código-fonte de sistemas embarcados usando o programa GNU GDB (e outros que falam o protocolo GDB, ex.: IDA Pro).
Este arquivo README contém uma visão geral dos seguintes tópicos:
Se você tem uma placa popular, basta iniciar o OpenOCD com sua configuração, ex.:
openocd -f board/stm32f4discovery.cfg
Se você está conectando um adaptador específico com algum alvo específico, você precisa incluir as configurações da interface jtag e do alvo, ex.:
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
Após a inicialização do OpenOCD, conecte o GDB com
(gdb) target extended-remote localhost:3333
A maneira mais fácil de instalar o OpenOCD é através do gerenciador de pacotes do seu sistema operacional.
Debian / Ubuntu
sudo apt install openocd
Fedora
sudo dnf install openocd
macOS (via Homebrew)
brew install open-ocd
Windows (via MSYS2)
pacman -S mingw-w64-x86_64-openocd
Esses pacotes são frequentemente mais estáveis que a versão mais recente do Git (bleeding-edge), onde o desenvolvimento ativo ocorre. "Empacotadores" criam versões binárias do OpenOCD após os desenvolvedores publicarem novas versões do código-fonte. Versões antigas do OpenOCD não são adequadas para diagnosticar problemas na versão atual. Os usuários devem manter contato com seus mantenedores de distribuição ou fornecedores de interface para garantir que atualizações adequadas sejam fornecidas regularmente.
Se você usar um desses pacotes binários, deve entrar em contato com o Empacotador para obter suporte ou versões binárias mais recentes. Os desenvolvedores do OpenOCD não fornecem suporte direto para binários empacotados.
Você é um EMPACOTADOR do OpenOCD se você:
Como EMPACOTADOR, você receberá os primeiros relatos da maioria dos problemas. Quando você corrigir esses problemas para seus usuários, sua solução pode ajudar a prevenir centenas (senão milhares) de outras perguntas de outros usuários.
Se algo não funcionar para você, por favor, trabalhe para informar os desenvolvedores do OpenOCD como melhorar o sistema ou a documentação para evitar problemas futuros, e acompanhe para nos ajudar a garantir que o problema seja totalmente resolvido em nossas versões futuras.
Dito isso, os desenvolvedores do OpenOCD também gostariam que você seguisse algumas sugestões:
Além da documentação na árvore, os manuais mais recentes podem ser visualizados online nos seguintes URLs:
Guia do Usuário do OpenOCD: http://openocd.org/doc/html/index.html
Manual do Desenvolvedor do OpenOCD: http://openocd.org/doc/doxygen/html/index.html
Eles refletem as versões de desenvolvimento mais recentes, então a seção a seguir introduz como construir a documentação completa a partir do pacote.
Para mais informações, consulte esses documentos ou entre em contato com os desenvolvedores inscrevendo-se na lista de e-mail dos desenvolvedores do OpenOCD: [email protected]
Por padrão, o processo de compilação do OpenOCD prepara a documentação no
"formato Info" e a instala da maneira padrão, para que info openocd
possa acessá-la.
Além disso, o Guia do Usuário do OpenOCD pode ser produzido nos seguintes formatos diferentes:
Se PDFVIEWER estiver definido, isso cria e visualiza o Guia do Usuário em PDF.
make pdf && ${PDFVIEWER} doc/openocd.pdf
Se HTMLVIEWER estiver definido, isso cria e visualiza o Guia do Usuário em HTML.
make html && ${HTMLVIEWER} doc/openocd.html/index.html
O Manual do Desenvolvedor do OpenOCD contém informações sobre a arquitetura interna e outros detalhes sobre o código:
Nota: certifique-se de que o doxygen está instalado, digite 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 for Flash/FRAM/EEPROM, STMSMI, STR7x, STR9x, SWM050, TI CC13xx, TI CC26xx, TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF, XMC1xxx, XMC4xxx.
O arquivo INSTALL contém instruções genéricas para executar configure
e compilar o código-fonte do OpenOCD. Esse arquivo é fornecido por
padrão para todos os pacotes GNU autotools. Se você não está familiarizado com
o GNU autotools, então deve ler essas instruções primeiro.