diff --git a/README.md b/README.md index 6852a3c7af43ada6d9e0053dd4d256d2e08891ea..9910f5e0dc8c6b3e45bf7bf5af3d4628a5de8fe9 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,8 @@ # OpenOCD +[OpenOCD](http://openocd.org/) is a tool for on-chip debugging. It's also a great tool just for +flashing programs and bootloaders. + ## Installation ### Package Managers @@ -13,17 +16,35 @@ On Windows, there is no package manager. Untested: there are binaries ### From Source -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. +*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](https://sourceforge.net/p/openocd/code/ci/master/tree/) 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](http://openocd.org/doc-release/README). \ No newline at end of file +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](http://openocd.org/doc-release/README). 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](https://electronics.stackexchange.com/questions/405134/swdap-vs-cmsis-dap-vs-daplink).)