v0.30.0
This release of pyOCD makes some big changes!
- Python 2 support has been removed. Version 0.29 is the last version to support Python 2.
- Removed the long since deprecated
pyocd-flashtool
andpyocd-tool
commands.pyocd-gdbserver
has been held back from the chopping block for another time, since it is still used by some debugger integrations.
Additions
- New debug probe plugin for the Raspberry Pi picoprobe protocol. (Thanks @newbrain!)
- RTOS thread awareness for ThreadX, aka Azure RTOS. (Thanks @newbrain!)
- The PEMicro debug probe plugin is now a standard dependency. (Thanks @Gargy007!)
- The capstone disassembly package is now a standard dependency.
Boards and targets
- Add Raspberry Pi Pico, aka RP2040, target. Either of the two M0+ cores can be accessed by using the
rp2040_core0
orrp2040_core1
target type. Therp2040
target type is an alias forrp2040_core0
. Both cores cannot currently be debugged simultaneously. - Add NXP LPC845 target,
lpc845
. (Thanks @Hoohaha!) - Added a family match pattern for NXP i.MX RT family devices. This means that RT device support from CMSIS-Packs will have the same workaround for reset logic as the built-in RT family target support.
- Added new HDSC MCU series HC32F160 targets,
hc32f160xa
andhc32f160xc
. (Thanks @lennvn!) - Added HDSC part numbers:
hc32f460xc
andhc32f460xe
to HC32F460 series, and changedhc32m423
tohc32m423xa
. (Thanks @lennvn!) - Add some new and missing STMicro board IDs.
Changes and fixes
GDBDebugContextFacade
: Fix misspelledwarning()
method.- J-Link: Convert "unspecified error" to transfer fault.
- CMSIS-DAP: Set default SWD number of idle cycles after each transfer to 2, per recommendations and to match other probes.
- Probe server: Fix client/server
wire_protocol
property converter handling of a None value. - Dropped pywinusb dependency on Windows, in favour of hidapi that is more stable.
- A few other dependency updates and changes.
- CMSIS-DAP: If a probe doesn't provide a serial number string, pyusb will return None. In this case, pyocd now generates a unique ID from other device info. (Thanks @mentha!)
- J-Link: Removed all special handling of the
DP_SELECT
register at the J-Link probe plugin level since it is now handled in the higher DP layer. - DP: Add a couple checks of APv2 and register addresses.
- CMSIS-DAP: Only use extract a board ID from the USB serial number to for DAPLink firmware when reporting the probe description as for
pyocd list
. - CMSIS-Packs: Fixed off by 1 error in memory region overlap checking.
- CMSIS-Packs: Handle lack of
FlashDevice
struct in .FLM files. - CMSIS-DAP: read protocol version.
CMSISDAPProbe
: trace logging.Flash
: trace logger for flash algo operations.- Fixes for undefined symbols identified by flake8.
- CMSIS-DAP: add more checks of DAP_Info responses.
- Add command line alias
--project
alias for-j
/--dir
.
Python API
- SWJSequenceSender: Refactored so that parts of SWJ/JTAG transition sequences can be sent.
- DebugProbe: Added
swd_sequence()
andjtag_sequence()
APIs.
Test
- Replaced Travis-CI with GitHub Actions for executing the unit tests on multiple versions of Python 3.
- Add
probeserver_test.py
functional test. - Shorten
TestTimeout.no_timeout
so it doesn't fail on certain systems. - Add test binary for nRF5340-DK.