2009-06-30 16:45:26 -05:00
|
|
|
Welcome to OpenOCD!
|
|
|
|
===================
|
|
|
|
|
|
|
|
OpenOCD provides on-chip programming and debugging support with a
|
2013-09-11 16:05:16 -05:00
|
|
|
layered architecture of JTAG interface and TAP support including:
|
|
|
|
|
2016-12-10 02:02:52 -06:00
|
|
|
- (X)SVF playback to facilitate automated boundary scan and FPGA/CPLD
|
2013-09-11 16:05:16 -05:00
|
|
|
programming;
|
|
|
|
- debug target support (e.g. ARM, MIPS): single-stepping,
|
2013-09-15 09:33:07 -05:00
|
|
|
breakpoints/watchpoints, gprof profiling, etc;
|
2013-09-11 16:05:16 -05:00
|
|
|
- flash chip drivers (e.g. CFI, NAND, internal flash);
|
2013-09-15 09:33:07 -05:00
|
|
|
- embedded TCL interpreter for easy scripting.
|
2013-09-11 16:05:16 -05:00
|
|
|
|
|
|
|
Several network interfaces are available for interacting with OpenOCD:
|
|
|
|
telnet, TCL, and GDB. The GDB server enables OpenOCD to function as a
|
|
|
|
"remote target" for source-level debugging of embedded systems using
|
|
|
|
the GNU GDB program (and the others who talk GDB protocol, e.g. IDA
|
|
|
|
Pro).
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
This README file contains an overview of the following topics:
|
2013-09-11 16:05:16 -05:00
|
|
|
|
|
|
|
- quickstart instructions,
|
2009-06-30 16:45:26 -05:00
|
|
|
- how to find and build more OpenOCD documentation,
|
2013-09-11 16:05:16 -05:00
|
|
|
- list of the supported hardware,
|
|
|
|
- the installation and build process,
|
2009-06-30 16:45:26 -05:00
|
|
|
- packaging tips.
|
2013-09-11 16:05:16 -05:00
|
|
|
|
|
|
|
|
|
|
|
============================
|
|
|
|
Quickstart for the impatient
|
|
|
|
============================
|
|
|
|
|
|
|
|
If you have a popular board then just start OpenOCD with its config,
|
|
|
|
e.g.:
|
|
|
|
|
|
|
|
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.:
|
|
|
|
|
2015-01-27 13:43:11 -06:00
|
|
|
openocd -f interface/ftdi/jtagkey2.cfg -c "transport select jtag" \
|
|
|
|
-f target/ti_calypso.cfg
|
|
|
|
|
2018-09-14 09:14:30 -05:00
|
|
|
openocd -f interface/stlink.cfg -c "transport select hla_swd" \
|
2015-01-27 13:43:11 -06:00
|
|
|
-f target/stm32l0.cfg
|
2013-09-11 16:05:16 -05:00
|
|
|
|
|
|
|
After OpenOCD startup, connect GDB with
|
|
|
|
|
|
|
|
(gdb) target extended-remote localhost:3333
|
|
|
|
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
=====================
|
|
|
|
OpenOCD Documentation
|
|
|
|
=====================
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
In addition to the in-tree documentation, the latest manuals may be
|
|
|
|
viewed online at the following URLs:
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
OpenOCD User's Guide:
|
2015-04-07 03:40:53 -05:00
|
|
|
http://openocd.org/doc/html/index.html
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
OpenOCD Developer's Manual:
|
2015-04-07 03:40:53 -05:00
|
|
|
http://openocd.org/doc/doxygen/html/index.html
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
These reflect the latest development versions, so the following section
|
|
|
|
introduces how to build the complete documentation from the package.
|
|
|
|
|
|
|
|
For more information, refer to these documents or contact the developers
|
|
|
|
by subscribing to the OpenOCD developer mailing list:
|
|
|
|
|
2011-10-11 11:18:05 -05:00
|
|
|
openocd-devel@lists.sourceforge.net
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
Building the OpenOCD Documentation
|
|
|
|
----------------------------------
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
By default the OpenOCD build process prepares documentation in the
|
|
|
|
"Info format" and installs it the standard way, so that "info openocd"
|
|
|
|
can access it.
|
|
|
|
|
|
|
|
Additionally, the OpenOCD User's Guide can be produced in the
|
|
|
|
following different formats:
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
# If PDFVIEWER is set, this creates and views the PDF User Guide.
|
|
|
|
make pdf && ${PDFVIEWER} doc/openocd.pdf
|
|
|
|
|
|
|
|
# If HTMLVIEWER is set, this creates and views the HTML User Guide.
|
|
|
|
make html && ${HTMLVIEWER} doc/openocd.html/index.html
|
|
|
|
|
|
|
|
The OpenOCD Developer Manual contains information about the internal
|
|
|
|
architecture and other details about the code:
|
|
|
|
|
2009-07-07 06:29:34 -05:00
|
|
|
# NB! make sure doxygen is installed, type doxygen --version
|
2013-09-11 16:05:16 -05:00
|
|
|
make doxygen && ${HTMLVIEWER} doxygen/index.html
|
|
|
|
|
|
|
|
|
|
|
|
==================
|
|
|
|
Supported hardware
|
|
|
|
==================
|
|
|
|
|
|
|
|
JTAG adapters
|
|
|
|
-------------
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2022-09-19 16:14:41 -05:00
|
|
|
AM335x, ARM-JTAG-EW, ARM-USB-OCD, ARM-USB-TINY, AT91RM9200, axm0432, BCM2835,
|
2021-03-10 16:10:51 -06:00
|
|
|
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,
|
README: add missing items for 0.11
JTAG adapters
Cadence DPI, Cypress Kitpro, FTDI FT232R, Linux GPIOD, Mellanox rshim,
Nuvoton Nu-Link, Nu-Link2, NXP IMX GPIO, Remote Bitbang, TI XDS110,
Xilinx XVC/PCIe
Debug targets
AArch64, Cortex-M (ARMv8-M), ARCv2, MIPS64, RISC-V, ST-STM8
Flash Drivers
ATmega128RFA1, Atmel SAM, eSi-RISC, EZR32HG, MAX32, MXC, nRF52, PSoC6,
Renesas RPC HF and SH QSPI, SiFive Freedom E, ST BlueNRG,
STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, SWM050, TI CC13xx, TI CC26xx,
TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF
Change-Id: I341618ac5d7189e4f98268cecd66c99447b72af8
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6027
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2021-01-23 11:57:46 -06:00
|
|
|
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,
|
2021-03-10 16:10:51 -06:00
|
|
|
sysfsgpio, Tigard, TI XDS110, TUMPA, Turtelizer, ULINK, USB-A9260, USB-Blaster,
|
README: add missing items for 0.11
JTAG adapters
Cadence DPI, Cypress Kitpro, FTDI FT232R, Linux GPIOD, Mellanox rshim,
Nuvoton Nu-Link, Nu-Link2, NXP IMX GPIO, Remote Bitbang, TI XDS110,
Xilinx XVC/PCIe
Debug targets
AArch64, Cortex-M (ARMv8-M), ARCv2, MIPS64, RISC-V, ST-STM8
Flash Drivers
ATmega128RFA1, Atmel SAM, eSi-RISC, EZR32HG, MAX32, MXC, nRF52, PSoC6,
Renesas RPC HF and SH QSPI, SiFive Freedom E, ST BlueNRG,
STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, SWM050, TI CC13xx, TI CC26xx,
TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF
Change-Id: I341618ac5d7189e4f98268cecd66c99447b72af8
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6027
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2021-01-23 11:57:46 -06:00
|
|
|
USB-JTAG, USBprog, VPACLink, VSLLink, Wiggler, XDS100v2, Xilinx XVC/PCIe,
|
|
|
|
Xverve.
|
2013-09-11 16:05:16 -05:00
|
|
|
|
|
|
|
Debug targets
|
|
|
|
-------------
|
|
|
|
|
README: add missing items for 0.11
JTAG adapters
Cadence DPI, Cypress Kitpro, FTDI FT232R, Linux GPIOD, Mellanox rshim,
Nuvoton Nu-Link, Nu-Link2, NXP IMX GPIO, Remote Bitbang, TI XDS110,
Xilinx XVC/PCIe
Debug targets
AArch64, Cortex-M (ARMv8-M), ARCv2, MIPS64, RISC-V, ST-STM8
Flash Drivers
ATmega128RFA1, Atmel SAM, eSi-RISC, EZR32HG, MAX32, MXC, nRF52, PSoC6,
Renesas RPC HF and SH QSPI, SiFive Freedom E, ST BlueNRG,
STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, SWM050, TI CC13xx, TI CC26xx,
TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF
Change-Id: I341618ac5d7189e4f98268cecd66c99447b72af8
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6027
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2021-01-23 11:57:46 -06:00
|
|
|
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),
|
2022-09-19 16:14:41 -05:00
|
|
|
ESP32, ESP32-S2, ESP32-S3, Intel Quark, LS102x-SAP, RISC-V, ST STM8,
|
2021-03-10 16:10:51 -06:00
|
|
|
Xtensa.
|
2013-09-11 16:05:16 -05:00
|
|
|
|
|
|
|
Flash drivers
|
|
|
|
-------------
|
|
|
|
|
README: add missing items for 0.11
JTAG adapters
Cadence DPI, Cypress Kitpro, FTDI FT232R, Linux GPIOD, Mellanox rshim,
Nuvoton Nu-Link, Nu-Link2, NXP IMX GPIO, Remote Bitbang, TI XDS110,
Xilinx XVC/PCIe
Debug targets
AArch64, Cortex-M (ARMv8-M), ARCv2, MIPS64, RISC-V, ST-STM8
Flash Drivers
ATmega128RFA1, Atmel SAM, eSi-RISC, EZR32HG, MAX32, MXC, nRF52, PSoC6,
Renesas RPC HF and SH QSPI, SiFive Freedom E, ST BlueNRG,
STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, SWM050, TI CC13xx, TI CC26xx,
TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF
Change-Id: I341618ac5d7189e4f98268cecd66c99447b72af8
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6027
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2021-01-23 11:57:46 -06:00
|
|
|
ADUC702x, AT91SAM, AT91SAM9 (NAND), ATH79, ATmega128RFA1, Atmel SAM, AVR, CFI,
|
|
|
|
DSP5680xx, EFM32, EM357, eSi-RISC, eSi-TSMC, EZR32HG, FM3, FM4, Freedom E SPI,
|
2021-03-10 16:10:51 -06:00
|
|
|
GD32, i.MX31, Kinetis, LPC8xx/LPC1xxx/LPC2xxx/LPC541xx, LPC2900, LPC3180, LPC32xx,
|
README: add missing items for 0.11
JTAG adapters
Cadence DPI, Cypress Kitpro, FTDI FT232R, Linux GPIOD, Mellanox rshim,
Nuvoton Nu-Link, Nu-Link2, NXP IMX GPIO, Remote Bitbang, TI XDS110,
Xilinx XVC/PCIe
Debug targets
AArch64, Cortex-M (ARMv8-M), ARCv2, MIPS64, RISC-V, ST-STM8
Flash Drivers
ATmega128RFA1, Atmel SAM, eSi-RISC, EZR32HG, MAX32, MXC, nRF52, PSoC6,
Renesas RPC HF and SH QSPI, SiFive Freedom E, ST BlueNRG,
STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, SWM050, TI CC13xx, TI CC26xx,
TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF
Change-Id: I341618ac5d7189e4f98268cecd66c99447b72af8
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6027
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2021-01-23 11:57:46 -06:00
|
|
|
LPCSPIFI, Marvell QSPI, MAX32, Milandr, MXC, NIIET, nRF51, nRF52 , NuMicro,
|
2021-03-10 16:10:51 -06:00
|
|
|
NUC910, Nuvoton NPCX, onsemi RSL10, Orion/Kirkwood, PIC32mx, PSoC4/5LP/6,
|
|
|
|
Raspberry RP2040, Renesas RPC HF and SH QSPI,
|
README: add missing items for 0.11
JTAG adapters
Cadence DPI, Cypress Kitpro, FTDI FT232R, Linux GPIOD, Mellanox rshim,
Nuvoton Nu-Link, Nu-Link2, NXP IMX GPIO, Remote Bitbang, TI XDS110,
Xilinx XVC/PCIe
Debug targets
AArch64, Cortex-M (ARMv8-M), ARCv2, MIPS64, RISC-V, ST-STM8
Flash Drivers
ATmega128RFA1, Atmel SAM, eSi-RISC, EZR32HG, MAX32, MXC, nRF52, PSoC6,
Renesas RPC HF and SH QSPI, SiFive Freedom E, ST BlueNRG,
STM32 QUAD/OCTO-SPI for Flash/FRAM/EEPROM, SWM050, TI CC13xx, TI CC26xx,
TI CC32xx, TI MSP432, Winner Micro w600, Xilinx XCF
Change-Id: I341618ac5d7189e4f98268cecd66c99447b72af8
Signed-off-by: Tarek BOCHKATI <tarek.bouchkati@st.com>
Reviewed-on: http://openocd.zylin.com/6027
Tested-by: jenkins
Reviewed-by: Antonio Borneo <borneo.antonio@gmail.com>
Reviewed-by: Paul Fertser <fercerpav@gmail.com>
2021-01-23 11:57:46 -06:00
|
|
|
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.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
|
|
|
|
==================
|
|
|
|
Installing OpenOCD
|
|
|
|
==================
|
|
|
|
|
|
|
|
A Note to OpenOCD Users
|
|
|
|
-----------------------
|
|
|
|
|
|
|
|
If you would rather be working "with" OpenOCD rather than "on" it, your
|
2009-10-07 19:13:50 -05:00
|
|
|
operating system or JTAG interface supplier may provide binaries for
|
|
|
|
you in a convenient-enough package.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Such packages may be more stable than git mainline, where
|
|
|
|
bleeding-edge development takes place. These "Packagers" produce
|
|
|
|
binary releases of OpenOCD after the developers produces new "release"
|
|
|
|
versions of the source code. Previous versions of OpenOCD cannot be
|
|
|
|
used to diagnose problems with the current release, so users are
|
|
|
|
encouraged to keep in contact with their distribution package
|
|
|
|
maintainers or interface vendors to ensure suitable upgrades appear
|
|
|
|
regularly.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
Users of these binary versions of OpenOCD must contact their Packager to
|
|
|
|
ask for support or newer versions of the binaries; the OpenOCD
|
|
|
|
developers do not support packages directly.
|
|
|
|
|
|
|
|
A Note to OpenOCD Packagers
|
|
|
|
---------------------------
|
|
|
|
|
|
|
|
You are a PACKAGER of OpenOCD if you:
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
- Sell dongles and include pre-built binaries;
|
|
|
|
- Supply tools or IDEs (a development solution integrating OpenOCD);
|
|
|
|
- Build packages (e.g. RPM or DEB files for a GNU/Linux distribution).
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
As a PACKAGER, you will experience first reports of most issues.
|
|
|
|
When you fix those problems for your users, your solution may help
|
|
|
|
prevent hundreds (if not thousands) of other questions from other users.
|
|
|
|
|
|
|
|
If something does not work for you, please work to inform the OpenOCD
|
|
|
|
developers know how to improve the system or documentation to avoid
|
|
|
|
future problems, and follow-up to help us ensure the issue will be fully
|
|
|
|
resolved in our future releases.
|
|
|
|
|
|
|
|
That said, the OpenOCD developers would also like you to follow a few
|
|
|
|
suggestions:
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
- Send patches, including config files, upstream, participate in the
|
|
|
|
discussions;
|
|
|
|
- Enable all the options OpenOCD supports, even those unrelated to your
|
|
|
|
particular hardware;
|
|
|
|
- Use "ftdi" interface adapter driver for the FTDI-based devices.
|
|
|
|
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
================
|
|
|
|
Building OpenOCD
|
|
|
|
================
|
|
|
|
|
|
|
|
The INSTALL file contains generic instructions for running 'configure'
|
2013-09-11 16:05:16 -05:00
|
|
|
and compiling the OpenOCD source code. That file is provided by
|
|
|
|
default for all GNU autotools packages. If you are not familiar with
|
|
|
|
the GNU autotools, then you should read those instructions first.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2009-07-01 23:55:46 -05:00
|
|
|
The remainder of this document tries to provide some instructions for
|
|
|
|
those looking for a quick-install.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
|
|
|
OpenOCD Dependencies
|
|
|
|
--------------------
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
GCC or Clang is currently required to build OpenOCD. The developers
|
|
|
|
have begun to enforce strict code warnings (-Wall, -Werror, -Wextra,
|
|
|
|
and more) and use C99-specific features: inline functions, named
|
|
|
|
initializers, mixing declarations with code, and other tricks. While
|
|
|
|
it may be possible to use other compilers, they must be somewhat
|
|
|
|
modern and could require extending support to conditionally remove
|
|
|
|
GCC-specific extensions.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
You'll also need:
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
- make
|
|
|
|
- libtool
|
2022-10-09 10:16:16 -05:00
|
|
|
- pkg-config >= 0.23 or pkgconf
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2022-10-09 10:22:37 -05:00
|
|
|
OpenOCD uses jimtcl library; build from git can retrieve jimtcl as git
|
|
|
|
submodule.
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Additionally, for building from git:
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2021-03-18 10:14:04 -05:00
|
|
|
- autoconf >= 2.69
|
2016-11-06 13:19:26 -06:00
|
|
|
- automake >= 1.14
|
2021-01-01 05:37:56 -06:00
|
|
|
- texinfo >= 5.0
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2022-10-09 10:22:37 -05:00
|
|
|
Optional USB-based adapter drivers need libusb-1.0.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2022-10-09 10:22:37 -05:00
|
|
|
Optional USB-Blaster, ASIX Presto and OpenJTAG interface adapter
|
2016-02-15 16:17:24 -06:00
|
|
|
drivers need:
|
2013-09-11 16:05:16 -05:00
|
|
|
- libftdi: http://www.intra2net.com/en/developer/libftdi/index.php
|
2012-05-29 10:01:21 -05:00
|
|
|
|
2022-10-09 10:22:37 -05:00
|
|
|
Optional CMSIS-DAP adapter driver needs HIDAPI library.
|
|
|
|
|
|
|
|
Optional linuxgpiod adapter driver needs libgpiod library.
|
|
|
|
|
2023-02-02 07:25:27 -06:00
|
|
|
Optional J-Link adapter driver needs libjaylink library.
|
2022-10-09 10:22:37 -05:00
|
|
|
|
|
|
|
Optional ARM disassembly needs capstone library.
|
|
|
|
|
|
|
|
Optional development script checkpatch needs:
|
|
|
|
|
|
|
|
- perl
|
|
|
|
- python
|
|
|
|
- python-ply
|
2014-01-17 05:25:53 -06:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Permissions delegation
|
|
|
|
----------------------
|
2012-05-29 10:01:21 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Running OpenOCD with root/administrative permissions is strongly
|
|
|
|
discouraged for security reasons.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2015-06-05 08:45:49 -05:00
|
|
|
For USB devices on GNU/Linux you should use the contrib/60-openocd.rules
|
2014-02-24 14:40:58 -06:00
|
|
|
file. It probably belongs somewhere in /etc/udev/rules.d, but
|
2013-09-11 16:05:16 -05:00
|
|
|
consult your operating system documentation to be sure. Do not forget
|
|
|
|
to add yourself to the "plugdev" group.
|
2012-05-29 10:01:21 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
For parallel port adapters on GNU/Linux and FreeBSD please change your
|
|
|
|
"ppdev" (parport* or ppi*) device node permissions accordingly.
|
2012-05-29 10:01:21 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
For parport adapters on Windows you need to run install_giveio.bat
|
|
|
|
(it's also possible to use "ioperm" with Cygwin instead) to give
|
|
|
|
ordinary users permissions for accessing the "LPT" registers directly.
|
2012-05-29 10:01:21 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Compiling OpenOCD
|
|
|
|
-----------------
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
To build OpenOCD, use the following sequence of commands:
|
2009-11-17 08:54:56 -06:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
./bootstrap (when building from the git repository)
|
|
|
|
./configure [options]
|
|
|
|
make
|
|
|
|
sudo make install
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
The 'configure' step generates the Makefiles required to build
|
|
|
|
OpenOCD, usually with one or more options provided to it. The first
|
|
|
|
'make' step will build OpenOCD and place the final executable in
|
|
|
|
'./src/'. The final (optional) step, ``make install'', places all of
|
|
|
|
the files in the required location.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
To see the list of all the supported options, run
|
|
|
|
./configure --help
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Cross-compiling Options
|
|
|
|
-----------------------
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
Cross-compiling is supported the standard autotools way, you just need
|
|
|
|
to specify the cross-compiling target triplet in the --host option,
|
|
|
|
e.g. for cross-building for Windows 32-bit with MinGW on Debian:
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
./configure --host=i686-w64-mingw32 [options]
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:07:59 -05:00
|
|
|
To make pkg-config work nicely for cross-compiling, you might need an
|
|
|
|
additional wrapper script as described at
|
|
|
|
|
2020-06-02 05:52:01 -05:00
|
|
|
https://autotools.io/pkgconfig/cross-compiling.html
|
2013-09-11 16:07:59 -05:00
|
|
|
|
|
|
|
This is needed to tell pkg-config where to look for the target
|
|
|
|
libraries that OpenOCD depends on. Alternatively, you can specify
|
|
|
|
*_CFLAGS and *_LIBS environment variables directly, see "./configure
|
|
|
|
--help" for the details.
|
|
|
|
|
2020-06-02 12:37:49 -05:00
|
|
|
For a more or less complete script that does all this for you, see
|
|
|
|
|
|
|
|
contrib/cross-build.sh
|
|
|
|
|
2009-06-30 16:45:26 -05:00
|
|
|
Parallel Port Dongles
|
|
|
|
---------------------
|
|
|
|
|
|
|
|
If you want to access the parallel port using the PPDEV interface you
|
2020-07-04 12:38:00 -05:00
|
|
|
have to specify both --enable-parport AND --enable-parport-ppdev, since
|
2013-09-11 16:05:16 -05:00
|
|
|
the later option is an option to the parport driver.
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
The same is true for the --enable-parport-giveio option, you have to
|
|
|
|
use both the --enable-parport AND the --enable-parport-giveio option
|
|
|
|
if you want to use giveio instead of ioperm parallel port access
|
2009-06-30 16:45:26 -05:00
|
|
|
method.
|
|
|
|
|
2013-09-11 16:05:16 -05:00
|
|
|
|
2009-10-07 19:13:50 -05:00
|
|
|
==========================
|
|
|
|
Obtaining OpenOCD From GIT
|
|
|
|
==========================
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2009-10-07 19:13:50 -05:00
|
|
|
You can download the current GIT version with a GIT client of your
|
|
|
|
choice from the main repository:
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-03-16 15:38:38 -05:00
|
|
|
git://git.code.sf.net/p/openocd/code
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2009-10-07 21:11:37 -05:00
|
|
|
You may prefer to use a mirror:
|
|
|
|
|
|
|
|
http://repo.or.cz/r/openocd.git
|
|
|
|
git://repo.or.cz/openocd.git
|
|
|
|
|
2009-10-07 19:13:50 -05:00
|
|
|
Using the GIT command line client, you might use the following command
|
|
|
|
to set up a local copy of the current repository (make sure there is no
|
|
|
|
directory called "openocd" in the current directory):
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2013-04-20 02:47:41 -05:00
|
|
|
git clone git://git.code.sf.net/p/openocd/code openocd
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2009-10-07 19:13:50 -05:00
|
|
|
Then you can update that at your convenience using
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2009-10-07 19:13:50 -05:00
|
|
|
git pull
|
2009-06-30 16:45:26 -05:00
|
|
|
|
2009-10-07 19:13:50 -05:00
|
|
|
There is also a gitweb interface, which you can use either to browse
|
2009-11-24 13:28:21 -06:00
|
|
|
the repository or to download arbitrary snapshots using HTTP:
|
2009-10-07 19:13:50 -05:00
|
|
|
|
2009-10-07 21:11:37 -05:00
|
|
|
http://repo.or.cz/w/openocd.git
|
2009-10-07 19:13:50 -05:00
|
|
|
|
|
|
|
Snapshots are compressed tarballs of the source tree, about 1.3 MBytes
|
|
|
|
each at this writing.
|