{"id":21744668,"url":"https://github.com/github0null/eide_builtin_openocd","last_synced_at":"2025-03-21T01:42:17.212Z","repository":{"id":100179665,"uuid":"562397315","full_name":"github0null/eide_builtin_openocd","owner":"github0null","description":"from openocd v0.12.0-rc2","archived":false,"fork":false,"pushed_at":"2022-11-06T10:10:48.000Z","size":36256,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-25T22:23:00.946Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/github0null.png","metadata":{"files":{"readme":"README","changelog":"ChangeLog","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-11-06T09:14:10.000Z","updated_at":"2022-11-06T09:31:52.000Z","dependencies_parsed_at":null,"dependency_job_id":"f9f99c04-ee37-4982-98e7-d6ad3e31e0da","html_url":"https://github.com/github0null/eide_builtin_openocd","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github0null%2Feide_builtin_openocd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github0null%2Feide_builtin_openocd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github0null%2Feide_builtin_openocd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/github0null%2Feide_builtin_openocd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/github0null","download_url":"https://codeload.github.com/github0null/eide_builtin_openocd/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244722655,"owners_count":20499153,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-26T07:12:16.220Z","updated_at":"2025-03-21T01:42:17.182Z","avatar_url":"https://github.com/github0null.png","language":"C","readme":"Welcome to OpenOCD!\n===================\n\nOpenOCD provides on-chip programming and debugging support with a\nlayered architecture of JTAG interface and TAP support including:\n\n- (X)SVF playback to facilitate automated boundary scan and FPGA/CPLD\n  programming;\n- debug target support (e.g. ARM, MIPS): single-stepping,\n  breakpoints/watchpoints, gprof profiling, etc;\n- flash chip drivers (e.g. CFI, NAND, internal flash);\n- embedded TCL interpreter for easy scripting.\n\nSeveral network interfaces are available for interacting with OpenOCD:\ntelnet, TCL, and GDB. The GDB server enables OpenOCD to function as a\n\"remote target\" for source-level debugging of embedded systems using\nthe GNU GDB program (and the others who talk GDB protocol, e.g. IDA\nPro).\n\nThis README file contains an overview of the following topics:\n\n- quickstart instructions,\n- how to find and build more OpenOCD documentation,\n- list of the supported hardware,\n- the installation and build process,\n- packaging tips.\n\n\n============================\nQuickstart for the impatient\n============================\n\nIf you have a popular board then just start OpenOCD with its config,\ne.g.:\n\n  openocd -f board/stm32f4discovery.cfg\n\nIf you are connecting a particular adapter with some specific target,\nyou need to source both the jtag interface and the target configs,\ne.g.:\n\n  openocd -f interface/ftdi/jtagkey2.cfg -c \"transport select jtag\" \\\n          -f target/ti_calypso.cfg\n\n  openocd -f interface/stlink.cfg -c \"transport select hla_swd\" \\\n          -f target/stm32l0.cfg\n\nAfter OpenOCD startup, connect GDB with\n\n  (gdb) target extended-remote localhost:3333\n\n\n=====================\nOpenOCD Documentation\n=====================\n\nIn addition to the in-tree documentation, the latest manuals may be\nviewed online at the following URLs:\n\n  OpenOCD User's Guide:\n    http://openocd.org/doc/html/index.html\n\n  OpenOCD Developer's Manual:\n    http://openocd.org/doc/doxygen/html/index.html\n\nThese reflect the latest development versions, so the following section\nintroduces how to build the complete documentation from the package.\n\nFor more information, refer to these documents or contact the developers\nby subscribing to the OpenOCD developer mailing list:\n\n\topenocd-devel@lists.sourceforge.net\n\nBuilding the OpenOCD Documentation\n----------------------------------\n\nBy default the OpenOCD build process prepares documentation in the\n\"Info format\" and installs it the standard way, so that \"info openocd\"\ncan access it.\n\nAdditionally, the OpenOCD User's Guide can be produced in the\nfollowing different formats:\n\n  # If PDFVIEWER is set, this creates and views the PDF User Guide.\n  make pdf \u0026\u0026 ${PDFVIEWER} doc/openocd.pdf\n\n  # If HTMLVIEWER is set, this creates and views the HTML User Guide.\n  make html \u0026\u0026 ${HTMLVIEWER} doc/openocd.html/index.html\n\nThe OpenOCD Developer Manual contains information about the internal\narchitecture and other details about the code:\n\n  # NB! make sure doxygen is installed, type doxygen --version\n  make doxygen \u0026\u0026 ${HTMLVIEWER} doxygen/index.html\n\n\n==================\nSupported hardware\n==================\n\nJTAG adapters\n-------------\n\nAICE, AM335x, ARM-JTAG-EW, ARM-USB-OCD, ARM-USB-TINY, AT91RM9200, axm0432, BCM2835,\nBus Blaster, Buspirate, Cadence DPI, Cadence vdebug, Chameleon, CMSIS-DAP,\nCortino, Cypress KitProg, DENX, Digilent JTAG-SMT2, DLC 5, DLP-USB1232H,\nembedded projects, Espressif USB JTAG Programmer,\neStick, FlashLINK, FlossJTAG, Flyswatter, Flyswatter2,\nFTDI FT232R, Gateworks, Hoegl, ICDI, ICEBear, J-Link, JTAG VPI, JTAGkey,\nJTAGkey2, JTAG-lock-pick, KT-Link, Linux GPIOD, Lisa/L, LPC1768-Stick,\nMellanox rshim, MiniModule, NGX, Nuvoton Nu-Link, Nu-Link2, NXHX, NXP IMX GPIO,\nOOCDLink, Opendous, OpenJTAG, Openmoko, OpenRD, OSBDM, Presto, Redbee,\nRemote Bitbang, RLink, SheevaPlug devkit, Stellaris evkits,\nST-LINK (SWO tracing supported), STM32-PerformanceStick, STR9-comStick,\nsysfsgpio, Tigard, TI XDS110, TUMPA, Turtelizer, ULINK, USB-A9260, USB-Blaster,\nUSB-JTAG, USBprog, VPACLink, VSLLink, Wiggler, XDS100v2, Xilinx XVC/PCIe,\nXverve.\n\nDebug targets\n-------------\n\nARM: AArch64, ARM11, ARM7, ARM9, Cortex-A/R (v7-A/R), Cortex-M (ARMv{6/7/8}-M),\nFA526, Feroceon/Dragonite, XScale.\nARCv2, AVR32, DSP563xx, DSP5680xx, EnSilica eSi-RISC, EJTAG (MIPS32, MIPS64),\nESP32, ESP32-S2, ESP32-S3, Intel Quark, LS102x-SAP, NDS32, RISC-V, ST STM8,\nXtensa.\n\nFlash drivers\n-------------\n\nADUC702x, AT91SAM, AT91SAM9 (NAND), ATH79, ATmega128RFA1, Atmel SAM, AVR, CFI,\nDSP5680xx, EFM32, EM357, eSi-RISC, eSi-TSMC, EZR32HG, FM3, FM4, Freedom E SPI,\nGD32, i.MX31, Kinetis, LPC8xx/LPC1xxx/LPC2xxx/LPC541xx, LPC2900, LPC3180, LPC32xx,\nLPCSPIFI, Marvell QSPI, MAX32, Milandr, MXC, NIIET, nRF51, nRF52 , NuMicro,\nNUC910, Nuvoton NPCX, onsemi RSL10, Orion/Kirkwood, PIC32mx, PSoC4/5LP/6,\nRaspberry RP2040, Renesas RPC HF and SH QSPI,\nS3C24xx, S3C6400, SiM3x, SiFive Freedom E, Stellaris, ST BlueNRG, STM32,\nSTM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, STMSMI, STR7x, STR9x, SWM050,\nTI CC13xx, TI CC26xx, TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF,\nXMC1xxx, XMC4xxx.\n\n\n==================\nInstalling OpenOCD\n==================\n\nA Note to OpenOCD Users\n-----------------------\n\nIf you would rather be working \"with\" OpenOCD rather than \"on\" it, your\noperating system or JTAG interface supplier may provide binaries for\nyou in a convenient-enough package.\n\nSuch packages may be more stable than git mainline, where\nbleeding-edge development takes place. These \"Packagers\" produce\nbinary releases of OpenOCD after the developers produces new \"release\"\nversions of the source code. Previous versions of OpenOCD cannot be\nused to diagnose problems with the current release, so users are\nencouraged to keep in contact with their distribution package\nmaintainers or interface vendors to ensure suitable upgrades appear\nregularly.\n\nUsers of these binary versions of OpenOCD must contact their Packager to\nask for support or newer versions of the binaries; the OpenOCD\ndevelopers do not support packages directly.\n\nA Note to OpenOCD Packagers\n---------------------------\n\nYou are a PACKAGER of OpenOCD if you:\n\n- Sell dongles and include pre-built binaries;\n- Supply tools or IDEs (a development solution integrating OpenOCD);\n- Build packages (e.g. RPM or DEB files for a GNU/Linux distribution).\n\nAs a PACKAGER, you will experience first reports of most issues.\nWhen you fix those problems for your users, your solution may help\nprevent hundreds (if not thousands) of other questions from other users.\n\nIf something does not work for you, please work to inform the OpenOCD\ndevelopers know how to improve the system or documentation to avoid\nfuture problems, and follow-up to help us ensure the issue will be fully\nresolved in our future releases.\n\nThat said, the OpenOCD developers would also like you to follow a few\nsuggestions:\n\n- Send patches, including config files, upstream, participate in the\n  discussions;\n- Enable all the options OpenOCD supports, even those unrelated to your\n  particular hardware;\n- Use \"ftdi\" interface adapter driver for the FTDI-based devices.\n\n\n================\nBuilding OpenOCD\n================\n\nThe INSTALL file contains generic instructions for running 'configure'\nand compiling the OpenOCD source code. That file is provided by\ndefault for all GNU autotools packages. If you are not familiar with\nthe GNU autotools, then you should read those instructions first.\n\nThe remainder of this document tries to provide some instructions for\nthose looking for a quick-install.\n\nOpenOCD Dependencies\n--------------------\n\nGCC or Clang is currently required to build OpenOCD. The developers\nhave begun to enforce strict code warnings (-Wall, -Werror, -Wextra,\nand more) and use C99-specific features: inline functions, named\ninitializers, mixing declarations with code, and other tricks. While\nit may be possible to use other compilers, they must be somewhat\nmodern and could require extending support to conditionally remove\nGCC-specific extensions.\n\nYou'll also need:\n\n- make\n- libtool\n- pkg-config \u003e= 0.23 or pkgconf\n\nOpenOCD uses jimtcl library; build from git can retrieve jimtcl as git\nsubmodule.\n\nAdditionally, for building from git:\n\n- autoconf \u003e= 2.69\n- automake \u003e= 1.14\n- texinfo \u003e= 5.0\n\nOptional USB-based adapter drivers need libusb-1.0.\n\nOptional USB-Blaster, ASIX Presto and OpenJTAG interface adapter\ndrivers need:\n  - libftdi: http://www.intra2net.com/en/developer/libftdi/index.php\n\nOptional CMSIS-DAP adapter driver needs HIDAPI library.\n\nOptional linuxgpiod adapter driver needs libgpiod library.\n\nOptional JLink adapter driver needs libjaylink; build from git can\nretrieve libjaylink as git submodule.\n\nOptional ARM disassembly needs capstone library.\n\nOptional development script checkpatch needs:\n\n- perl\n- python\n- python-ply\n\nPermissions delegation\n----------------------\n\nRunning OpenOCD with root/administrative permissions is strongly\ndiscouraged for security reasons.\n\nFor USB devices on GNU/Linux you should use the contrib/60-openocd.rules\nfile. It probably belongs somewhere in /etc/udev/rules.d, but\nconsult your operating system documentation to be sure. Do not forget\nto add yourself to the \"plugdev\" group.\n\nFor parallel port adapters on GNU/Linux and FreeBSD please change your\n\"ppdev\" (parport* or ppi*) device node permissions accordingly.\n\nFor parport adapters on Windows you need to run install_giveio.bat\n(it's also possible to use \"ioperm\" with Cygwin instead) to give\nordinary users permissions for accessing the \"LPT\" registers directly.\n\nCompiling OpenOCD\n-----------------\n\nTo build OpenOCD, use the following sequence of commands:\n\n  ./bootstrap (when building from the git repository)\n  ./configure [options]\n  make\n  sudo make install\n\nThe 'configure' step generates the Makefiles required to build\nOpenOCD, usually with one or more options provided to it. The first\n'make' step will build OpenOCD and place the final executable in\n'./src/'. The final (optional) step, ``make install'', places all of\nthe files in the required location.\n\nTo see the list of all the supported options, run\n  ./configure --help\n\nCross-compiling Options\n-----------------------\n\nCross-compiling is supported the standard autotools way, you just need\nto specify the cross-compiling target triplet in the --host option,\ne.g. for cross-building for Windows 32-bit with MinGW on Debian:\n\n  ./configure --host=i686-w64-mingw32 [options]\n\nTo make pkg-config work nicely for cross-compiling, you might need an\nadditional wrapper script as described at\n\n  https://autotools.io/pkgconfig/cross-compiling.html\n\nThis is needed to tell pkg-config where to look for the target\nlibraries that OpenOCD depends on. Alternatively, you can specify\n*_CFLAGS and *_LIBS environment variables directly, see \"./configure\n--help\" for the details.\n\nFor a more or less complete script that does all this for you, see\n\n  contrib/cross-build.sh\n\nParallel Port Dongles\n---------------------\n\nIf you want to access the parallel port using the PPDEV interface you\nhave to specify both --enable-parport AND --enable-parport-ppdev, since\nthe later option is an option to the parport driver.\n\nThe same is true for the --enable-parport-giveio option, you have to\nuse both the --enable-parport AND the --enable-parport-giveio option\nif you want to use giveio instead of ioperm parallel port access\nmethod.\n\n\n==========================\nObtaining OpenOCD From GIT\n==========================\n\nYou can download the current GIT version with a GIT client of your\nchoice from the main repository:\n\n   git://git.code.sf.net/p/openocd/code\n\nYou may prefer to use a mirror:\n\n   http://repo.or.cz/r/openocd.git\n   git://repo.or.cz/openocd.git\n\nUsing the GIT command line client, you might use the following command\nto set up a local copy of the current repository (make sure there is no\ndirectory called \"openocd\" in the current directory):\n\n   git clone git://git.code.sf.net/p/openocd/code openocd\n\nThen you can update that at your convenience using\n\n   git pull\n\nThere is also a gitweb interface, which you can use either to browse\nthe repository or to download arbitrary snapshots using HTTP:\n\n   http://repo.or.cz/w/openocd.git\n\nSnapshots are compressed tarballs of the source tree, about 1.3 MBytes\neach at this writing.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithub0null%2Feide_builtin_openocd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgithub0null%2Feide_builtin_openocd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgithub0null%2Feide_builtin_openocd/lists"}