OpenOCD
OpenOCD is a tool for on-chip debugging. It's also a great tool just for flashing programs and bootloaders.
Installation
Package Managers
On Linux, TODO.
On Mac, using Homebrew: brew install openocd
.
On Windows, there is no package manager. Untested: there are binaries here.
From Source
This section is for Linux and Mac only
If you want to know exactly which version you're using, or you're going for maximum bare metal cred, you can build from source. This can be helpful if you'll be developing between different operating systems — one less thing that could be different — or if the package available on your system is out of date.
The official git repo is on SourceForge.
git clone https://git.code.sf.net/p/openocd/code openocd-code
To build it, you'll need gcc
or clang
, as well as make
, libtool
, pkg-config
version 0.23
or greater, and possibly others detailed here. Once you
have the prereqs, building is a standard process:
./bootstrap
./configure --enable-cmsis-dap
make
make install
Basic Use
Config files
When openocd starts, it first processes some configuration commands. You can specify a specific
config file with openocd -f path/to/your/config.cfg
, or by default it looks for openocd.cfg
. At a minimum, openocd needs to know how to communicate with the
programming/debug tool you're using (e.g. ATMEL ICE), and what microcontroller you're using. For
ATMEL ICE, we want cmsis-dap
. (You can read more about what this means
here.)