
Miroir officiel en lecture seule d'OpenOCD (pas de pull requests)
OpenOCD fournit une prise en charge de la programmation et du débogage sur puce avec une architecture en couches de l'interface JTAG et du support TAP, notamment :
Plusieurs interfaces réseau sont disponibles pour interagir avec OpenOCD : telnet, Tcl et GDB. Le serveur GDB permet à OpenOCD de fonctionner comme une 'cible distante' pour le débogage au niveau source des systèmes embarqués en utilisant le programme GNU GDB (et les autres qui parlent le protocole GDB, par ex. IDA Pro).
Ce fichier README contient un aperçu des sujets suivants :
Si vous avez une carte populaire, lancez simplement OpenOCD avec sa configuration, par ex. :
openocd -f board/stm32f4discovery.cfg
If you are connecting a particular adapter with some specific target, you need to source both the jtag interface and the target configs, e.g.:
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
Après le démarrage d'OpenOCD, connectez GDB avec
(gdb) target extended-remote localhost:3333
La façon la plus simple d'installer OpenOCD est via le gestionnaire de paquets de votre système d'exploitation.
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
Ces paquets sont souvent plus stables que la version de développement Git, où le développement actif se produit. "Les empaqueteurs" créent des versions binaires d'OpenOCD après que les développeurs publient de nouvelles versions du code source. Les anciennes versions d'OpenOCD ne sont pas adaptées pour diagnostiquer les problèmes de la version actuelle. Les utilisateurs doivent rester en contact avec les responsables de leur distribution ou les fournisseurs d'interface pour s'assurer que les mises à jour appropriées sont fournies régulièrement.
Si vous utilisez l'un de ces paquets binaires, vous devez contacter l'empaqueteur pour obtenir du support ou des versions binaires plus récentes. Les développeurs d'OpenOCD ne fournissent pas de support direct pour les binaires empaquetés.
Vous êtes un EMPAQUETEUR d'OpenOCD si vous :
En tant qu'EMPAQUETEUR, vous serez le premier à recevoir des rapports de la plupart des problèmes. Lorsque vous résolvez ces problèmes pour vos utilisateurs, votre solution peut aider à éviter des centaines (voire des milliers) d'autres questions de la part d'autres utilisateurs.
Si quelque chose ne fonctionne pas pour vous, veuillez informer les développeurs d'OpenOCD de la manière d'améliorer le système ou la documentation pour éviter de futurs problèmes, et assurez un suivi pour nous aider à garantir que le problème sera entièrement résolu dans nos prochaines versions.
Cela dit, les développeurs d'OpenOCD aimeraient également que vous suiviez quelques suggestions :
En plus de la documentation dans l'arborescence, les derniers manuels peuvent être consultés en ligne aux URL suivantes :
OpenOCD User's Guide: http://openocd.org/doc/html/index.html
OpenOCD Developer's Manual: http://openocd.org/doc/doxygen/html/index.html
Ceux-ci reflètent les dernières versions de développement, donc la section suivante présente comment construire la documentation complète à partir du paquet.
Pour plus d'informations, référez-vous à ces documents ou contactez les développeurs en vous abonnant à la liste de diffusion des développeurs OpenOCD : [email protected]
Par défaut, le processus de compilation d'OpenOCD prépare la documentation au format 'Info' et l'installe de manière standard, de sorte que info openocd puisse y accéder.
De plus, le guide de l'utilisateur d'OpenOCD peut être produit dans les formats différents suivants :
Si PDFVIEWER est défini, cela crée et affiche le guide utilisateur PDF.
make pdf && ${PDFVIEWER} doc/openocd.pdf
Si HTMLVIEWER est défini, cela crée et affiche le guide utilisateur HTML.
make html && ${HTMLVIEWER} doc/openocd.html/index.html
Le manuel du développeur OpenOCD contient des informations sur l'architecture interne et d'autres détails sur le code :
Remarque : assurez-vous que doxygen est installé, tapez 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.