Major new features:
- **Python 3 support!**
- Zephyr RTOS support.
- Basic multicore debug. `pyocd-gdbserver` will now start up a GDB server for every core in the target, using sequential port numbers. See 325 for more.
New boards (targets):
- CC3220SF_LaunchXL (cc3220sf)
- FRDM-K32W042 (k32w042s)
- FRDM-KW24D512 (kw24d5)
- RedBearLab-BLE-Nano2 (nrf52)
- Seeed 96Boards Nitrogen (nrf52)
- u-blox EVK-NINA-B1 (nrf52)
Other changes:
- Added timeouts for Kinetis mass erase and device unlock.
- New internal event notification API. Objects can subscribe to notifications on the target objects and be informed of target state changes (reset, run, step, etc).
- Introduced a workaround for stale RTOS data. This mostly eliminates occurrences of garbage thread lists when loading a new ELF, but device RAM still has valid RTOS structures from the previous version of the code.
- Improvements to `pyocd-tool`.
- set/show help will print appropriate list of available keys.
- Support for `help set <name>` and `help show <name>`.
- `show fault`, `show step-into-interrupt`, `show vector-catch`
- pyocd-tool no longer waits for SVD loading before showing the first prompt.
- new `initdp` and `makeap` commands.
- A few small bug fixes related to print hex values or hex dumps.
- Added example udev rule for Linux to readme, and a debug log message when lack of permissions seem to be preventing device access.
- Flash programming progress improved for non-TTY output streams, such as Eclipse.