New features
- User scripts are run earlier, from the `Session` constructor. This allows user scripts to add new target classes.
- pyocd commander: Added `compare` command for comparing memory with a binary file.
- JSON features and options list, accessible via `pyocd json --features`. This is intended to allow IDEs to query for supported features and the set of available user options without having to make decisions based solely on the pyOCD version.
Boards and targets
- Added NXP FRDM-K32LB2 board and `k32l2b3` target. (Thanks jhqian.)
- Added NXP MIMXRT1010-EVK and MIMXRT1015-EVK boards and `mimxrt1010` and `mimxrt1015` targets.
(Thanks jhqian.)
- Added NuMaker-IoT-M263A board and `m263kiaae` target. (Thanks OpenNuvoton.)
- Added numerous HDSC MCU targets: `hc32l110`, `hc32f003`, `hc32f005`, `hc32l136`, `hc32l130`, `hc32f030`, `hc32l196`, `hc32l190`, `hc32f196`, `hc32f190`, `hc32l072`, `hc32l073`, `hc32f072`. (Thanks hdscmcu.)
- Improved support for Cypress PSoC64 device family. (Thanks Cypress-OpenOCD.)
- Corrected the UICR region size for Nordic nRF52x devices. (Thanks Dirbaio.)
Changes
- pyocd commander: `erase` command will perform a mass erase if no arguments are passed.
- pyocd erase: A much more helpful error is shown in no arguments are passed.
- Arguments for subcommands are grouped in the usage text.
- Adjusted pyOCD's CoreSight discovery process to only stop scanning for APs after two invalid APSEL addresses in sequence have been encountered (instead of 1).
- Relaxed the CMSIS-DAPv1 detection code for the pyusb backend to only require "CMSIS-DAP" in the HID interface name if there is more than one HID interface.
Fixes
- Much more robust detection of FreeRTOS. (Thanks haneefdm.)
- Fixed exception raised by the Zephyr RTOS support in cases where a thread's state was garbage for one reason or another. (Thanks FrameworkComputer.)
- Fixed bits versus bytes confusion in SWV processor. (Thanks Dirbaio.)
- CMSIS-DAP v2: fix support for USB full speed devices with a `DAP_PACKET_SIZE` larger than the bulk packet size. (Thanks vllogic.)
- Corrected some debug log messages in the `BreakpointManager`.
- pyocd commander: Fixed several issues when connecting to a device where no cores were discovered, when allowed by setting the `allow_no_cores` option.
- Fixed issues with passing the path to an FLM flash algo to a `FlashRegion` via the `flm` parameter.
Testing
- Added CMSIS-Pack parsing unit test.
- The `FileProgrammer` functional test now tests ELF files.
Installation
- Individual SVD files are now stored in the repo, and the `svd_data.zip` is built by `setup.py`.
- `setup.py` can be run from directories other than the repo root. (Thanks jsiverskog.)