Releases: pyocd/pyOCD
Releases · pyocd/pyOCD
v0.16.1
Fixes
- Addressed a case where the USB device product name could be returned as bytes by hidapi instead of a string.
- Fixed
to_str_safe()
on Python 2 with non-ASCII characters. - Fixed Python 2 incompatibility in CMSIS DFP family matching.
Changes
- A little refactoring of some code in the
CmsisPack
class. - Renamed
pyocd.target.pack.pack
topyocd.target.pack.cmsis_pack
.
v0.16.0
New features
- Initial enablement of target support through CMSIS Device Family Packs. Pass the
--pack
argument to thepyocd
tool, or set thepack
session option in a config file. Any devices defined in the specified pack(s) become available as targets. - "erase" gdbserver monitor command. It accepts the same arguments as the
pyocd erase
subcommand.
Boards and targets
- Cypress PSoC6 CY8C6xx7 and CY8C6xxA targets and related boards.
- Maxim MAX32625 target and related board.
- Added STM32L031x6 target. (Thanks @michieldwitte!)
- Fixed the memory map for STM32F412xG. (Thanks @anthrax-0!)
Changes
- New
Target.ResetType
enumeration. - Much improved reset configuration.
CortexM
hasdefault_reset_type
anddefault_software_reset_type
properties. Software reset is used by default, and the default software reset depends on whether the core is the primary or a secondary core. - New emulated software reset type for v6-M and v8-M devices that don't support
VECTRESET
. - Presenting a standard VFP view to GDB.
- Nonstandard erased flash value can be set on a
FlashRegion
object with theerased_byte_value
attribute. - Builtin targets were moved to
pyocd.target.builtin
.
Fixes
- Fixed an issue with STLink communication by forcing the probe out of DFU mode on connection. (Thanks @michieldwitte!)
- Addressed a potential divide-by-zero error in
FlashLoader
if no data was written to flash. - Invalid addresses in hex files will be ignored rather than raise an exception. Some vendors put metadata in hex files as invalid addresses.
v0.12.1
v0.15.0
New features
- Added thread priority to RTX5 thread descriptions.
Changes
- Refined gdb target description register types and groups.
CortexM
uses the architecture and MVFR2 register to determine core features instead of the core type.- Updated
intervaltree
dependency to version 3.0.2, which fixes a warning reported on Python 3 about a deprecated API.
Fixes
- Corrected how the FPB revision was used to determine supported breakpoint address ranges.
- Fixed regression when accessing memory through APs with an APSEL > 0.
- Fixed renaming issue where
read_core_register_raw()
andwrite_core_register_raw()
were accidentally renamed to the non-raw version, resulting in two methods with the same name. This happened to not cause problems when using the gdbserver. - Set the encoding to UTF-8 when
setup.py
reads theREADME.md
file, which fixes issues on systems that have an incompatible default system encoding. - Pinned all dependencies that have stable APIs (version >=1.0).
- Corrected the flash algorithm call sequence to match the specification. This means calling
Init()
with the operation to be performed (erase or program), and callingUninit()
thenInit()
again prior to performing a different operation. Unfortunately, this change affects flash programming performance, slowing it down by approximately 5 kB/s. This performance degradation will be addressed soon.
Testing
- Expanded
cortex_test.py
to cover both the raw and non-raw versions of the read/write register APIs.
v0.14.3
Fixes
- Fixed serving on localhost only in the semihosting telnet server. The gdbserver would still serve localhost only by default (unless
--allow-remote
was set), but a bug was introduced in version 0.14.0 that caused the telnet server to always allow remote access.
v0.14.2
Fixes
- Pinned intervaltree version to 2.1.0. This is a work around for an issue in the newly released version 3.0.0 where it fails to install under Python 2.7. See chaimleib/intervaltree#77 for details.
v0.14.1
Fixes
- Corrected documentation and readme to reference combined
pyocd
tool. - Fixed handling of
chip_erase
andtrust_crc
parameters inFlashLoader
. This also corrects the behaviour of the--erase
and--trust-crc
command line arguments topyocd flash
. The most noticeable effect of the bug was that the sector erase option was not honoured. - Fixed Python3 regression with Intel hex files in
FileProgrammer
where they needed to be opened in text mode.
v0.14.0
New features
- The three pyOCD command line tools have been merged into a single
pyocd
tool with subcommands. The legacy tools are now deprecated and will print a warning about this when run. They will be removed in the 1.0 release. - Cortex-M7 and FPBv2 support.
- Flash programming algorithms are now associated with a specific flash memory region instead of being global for the target. This will allow for different flash algos to be used for different memory regions, although there are currently no targets that take advantage of this.
- New
pyocd.flash.loader
module that provides some high level flash related classes:FileProgrammer
,FlashEraser
, andFlashLoader
.
Boards and targets
- NXP i.MX RT1050 and RT1020 targets and corresponding EVK boards were added. However, there are known issues with flash programming on these devices. Debugging code in RAM works without issue.
Changes
- Reduced clutter in the RTOS thread descriptions.
- The name of the current core exception or interrupt (if an SVD file is available) is shown in the Handler mode pseudo-thread's description.
- All options passed to the
GDBServer
class are now handled as session options and are documented as such.
Fixes
- Corrected issues with RTOS thread register views, particularly for when the FPU is active.
- When the gdbserver and/or telnet port is set to 0 to use a dynamic port, the actual port number is read back and logged.
- Normalised gdbserver and telnet server startup log messages.
- Fixed descriptions of
writedp
andwriteap
commands in pyOCD commander (previously pyocd-tool).
Testing
- New
flash_loader_test.py
functional test that performs bare bones testing of the classes inpyocd.flash.loader
. - Updated functional tests to use combined tool and
FileProgrammer
.
v0.13.2
v0.13.1
Note: this release contains major breaking changes to the Python API since version 0.12!
Fixes
- Corrected issue in the PyPI source distribution tarball where the pyOCD package folder had not been successfully renamed from
pyOCD
topyocd
. This caused installation or upgrade failures that differed depending on the OS. - Fixed an invalid reference to
self
inpyocd-flashtool
, a copy-paste error brought in with the config file changes.