You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
The key has expired.
New features
Support for legacy AP BASE register formats seen on early Cortex-A platforms. While Cortex-A cores are not supported yet, pyOCD can at least read the ROM tables and identify the cores now.
Support for the new SWJ sequences introduced in ADIv5.2 with SWJ-DPv2. These sequences transition between SWD and JTAG by going through a dormant mode. By default, pyOCD will first attempt the deprecated SWJ sequences, then if that fails it will attempt the new sequences.
New user options:
dap_protocol: One of swd, jtag, or default. (JTAG is still not fully supported, but is getting closer.)
dap_enable_swj: Whether SWJ sequences are sent (default True).
dap_use_deprecated_swj: Whether to attempt deprecated SWJ sequences (pre-ADIv5.2). Most Cortex-M MCUs do not support the new sequences.
probe_all_aps: Force a scan of all 256 AP addresses instead of stopping the AP scan at the first invalid AP.
xpsr_control_fields: Defines bitfields for XPSR and CONTROL registers when presented in gdb.
Boards and targets
Added board ID for Embedded Planet Agora platform.
Major refactoring of Cypress PSoC6 target support. (Thanks Cypress!)
Nordic nRF52 APPROTECT security and unlock support. This works for both builtin and CMSIS-Pack targets. (Thanks @nocko!)
Fixed NXP LPC1768 reset and halt.
Fixed Arm Musca-B1 software reset.
Added test binaries for a handful of STMicro Nucleo boards.
Changes
More debug log messages when operations like stepping are performed.
Fixes
Fixed uninitialized variable reference in FileProgrammer that appeared when attempting to load ELF files. (#782 and others. Thanks @samkearney!)
Fixed an issue where v8-M cores would cause the commander show cores command to raise an exception due to separate core type name lists for v6/7-M and v8-M. There is now a single core type name list.
Improved handling of probes with multiple USB HID interfaces when using the pyusb backends.
Python API
DebugProbe.swj_sequence() is added, plus supports_swj_sequence property indicating whether the probe can send arbitrary SWJ sequences using this API. Currently only CMSIS-DAP probes are capable of this.
Fixed the JTAG sequence API in pyDAPAccess. (Not exposed at higher layers.)
Renamed link attribute of DebugPort to probe.
Refactored MemoryMap region search methods.
Renamed FlashRegion.is_erased() to is_data_erased() which better reflects that it operates on passed-in data.
Changed all the constants in Target to be enums.
Removed the root context methods on Target that were unused.
Added Target.get_halt_reason() method.
Renamed FlashReaderContext to ElfReaderContext.
Some new GraphNode methods.
MemoryCache and RegisterCache were moved from pyocd.debug.cache to their own modules in a new subpackage pyocd.cache.
Moved GDBServerPacketIOThread to its own module.
Moved FileProgrammer and FlashEraser to their own modules under pyocd.flash.
Documentation
Documented MemoryMap methods.
New security features documentation. (Thanks @nocko!)
Split documentation of user options out from configuration documentation.