Pyocd

Latest version: v0.36.0

Safety actively analyzes 630217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 11

0.34.0

Additions

* Probes: Vega VT-LinkII probe support (Thanks Entropy98)
* Cortex-M: Arm China Star-MC1 processor support
* Cortex-M: Add Cortex-M85 CoreSight IDs
* Commands: `rmwatch` optionally accepts type and size.
* STLink: hnonsec and hprot support.
* CMSIS-DAP: Support v2.1 target and board name support.
* Flash: Add a stack canary to tell if the flash algorithm overflows its stack.

Boards and targets

* Maxim: Add MAX32670EVKIT board and `max32670` target. (Thanks ozersa)
* Nuvoton: Add support for NuMaker-IoT-M467 board and `m467hjhae` target. (Thanks ychsu-tf)
* HDSC: Added new targets for HC32F451 and HC32F452. Added `hc32m120x6` target. (Thanks lennvn)
* NXP LPC55xx: Fix reset halt corner cases with forced halt.
* HDSC target family notes in docs (Thanks jeffreyabecker)

Changes and fixes

* CoreSight: Fix `GenericMemAPTarget` issues.
* CoreSight: ST DBGMCU component ID, log designer name.
* `list` subcommand: set default log level to error
* `reset` subcommand: Fix hardware reset, halt option, and session option integration.
* `rtt` subcommand: improve performance for finding control block. (Thanks te-johan)
* Commands: Fix `set option` command.
* Commands: Add `-n` arg for `find` command.
* Zephyr RTOS: Interpret thread priority as signed 8-bit integer.
* CMSIS-DAP: Fix search for devices without UID (Thanks martjoly)
* CMSIS-DAP: Consistent USB timeouts.
* Cortex-M: Add some missing CoreSight IDs for Cortex-M55.
* Cortex-M: Correct some connect and disconnect issues.
* Cortex-M: Fix a regression where the core would always be resumed on connect in some cases.
* SWV: Handle lack of ITM or TPIU.
* Flash: Init flash algo with default reset type instead of always using software reset.
* Flash: Clean up confusing log messages related to mass erase.
* Flash: Increase FLM stack size, stack canary and halt checks, generator script improvements
* Flash: Fix issues when overriding a flash region's algo with an FLM.
* Log messages: normalise error log messages to start with "Error:".
* CMSIS-Pack: Support "Dname" attribute for variants.
* User scripts: Add missing `MemoryLoader` to Python namespace.

Packaging

* Make pyocd-pemicro dependency optional. It can be installed simultaneous with pyocd by using the `pemicro` extra, e.g. `pip install pyocd[pemicro]`. This resolves crashes in PowerShell on exit of pyocd.
* Remove elapsedtimer dependency.

**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.33.1...v0.34.0

0.33.1

Fixes

* Zephyr RTOS: Fix reading thread name and update debug symbol names. (Thanks MaureenHelm)
* STLink: Fix USB timeout errors when listing or connecting to very recent versions of STLinkV2 firmware by correcting the read size for the `JTAG_GET_BOARD_IDENTIFIERS` command.


**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.33.0...v0.33.1

0.33.0

Additions

- Basic SEGGER RTT read/write support with an `rtt` subcommand. This subcommand streams stdio from/to the target. It works with all debug probe types, not only J-Link. (Thanks mikisama, ccattuto)
- There is no longer a need to install libusb separately when installing pyocd. The [libusb-package](https://github.com/pyocd/libusb-package) Python package was created so that an up to date libusb library can be automatically installed along with pyocd on all OSes.
- Log output is now colorized by default when outputting to a tty. The `--color` command line argument controls this feature. Also simplified the log output formatting so it is easier to read.
- Commander: Add `-x`/`--execute` argument to run commands from a file. Multiple command files can be run and mixed with `-c` commands.
- Commander: Add `-i`/`--interactive` to stay in REPL after running commands from either a file or command line.
- Commander: Introduce the `command` decorator that can be used in user scripts to create user-defined commands, accessible from Commander and as gdbserver monitor commands. See [the documentation](https://pyocd.io/docs/user_scripts.html#user-defined-commands) for details.

Boards and targets

- Add Maxim MAX32660 target and MAX32660EVSYS board. (Thanks ozersa)
- Correct RAM size of Maxim MAX32630 to 512 KiB.
- Add several NXP board IDs: FRDM-K32L3A6, TWR-KM35Z75M, MIMXRT1160-EVK, FRDM-KW38, USB-KW38, KW38-ER-RD.
- Add micro:bit v2 board IDs. (Thanks mbrossard)
- NXP LPC55xx family: re-unlock debug access after reset. (Thanks LeBlue)

Changes and fixes

- Cortex-M: Fix regression with writing CFBP and xPSR subregisters (CONTROL, FAULTMASK, BASEPRI, PRIMASK, and xPSR variants).
- Gdbserver: While the target is running (`continue` command in gdb), retry reading target status within a timeout after the first fault on such a check. This is intended to primarily help with firmware putting the core to sleep. The `debug.status_fault_retry_timeout` session option controls the timeout; set it to 0 to disable this experimental feature.
- Commander: Fix broken Python ("$") and system ("!") commands in certain cases.
- Commander: The shell-like lexer for commands has been replaced with a custom lexer that is simpler and more predictable. It breaks words on all non-alphanumeric characters except dash (for instance, "mem-ap" is considered one word). Single and double quoted values with backslash-escapes are supported.
- Commander: If a user script has been loaded, Python '$' commands share the user script's namespace.
- Commands: Add `flushprobe` command that ensures all outstanding transfers on the probe have been completed.
- Commands: Fix `reg` output so it is properly redirected when called as a gdbserver monitor command.
- Commands: `reg` and `wreg' improvements. `-p` option to force lookup as peripheral register. `reg` will print any number of registers. Add `rr` and `wr` aliases.
- User scripts: `print()` calls from user scripts get routed through any output direction, for example, such that the output will appear in the gdb console when a user-defined command is called as a gdbserver monitor command.
- Flash: Change default value of `keep_unwritten` session option to false.
- CMSIS-DAP: Better handling of protocol versions.
- CMSIS-DAP: All USB backends have a USB packet trace logger.
- CMSIS-DAP: Add `cmsis_dap.prefer_v1` session option that forces pyocd to use the CMSIS-DAP v1 interface on a debug probe that provides both v1 and v2. (Naturally, the default is to choose v2, since it is faster.) This is intended primarily for testing.
- CMSIS-DAP: Introduced timeouts for USB reads.
- CMSIS-DAP: Limit number of outstanding command packets to 30 on macOS using hidapi for CMSIS-DAP v1. This fixes a failure that occurred when certain memory transfers due to an in-built limit on the queue size in the macOS version of hidapi.
- CMSIS-DAP: Update list of known CMSIS-DAP probes; correspondingly update udev rules.
- STLink: use `JTAG_GET_BOARD_IDENTIFIERS` command to read board ID faster than extracting it from the "mbed.htm" file on the MSD volume. Requires V2J36 or V3J6 firmware versions.
- STLink: Setting the SWD frequency on an STLinkV3 was completely broken, and is now fixed.
- STLink: Add `stlink.v3_prescaler` session option to control the internal HCLK prescaler on the probe, which affects the set of available SWD/JTAG and other I/O frequencies.
- Probe server: Fix race causing server to terminate immediately is certain rare cases.
- Probe server: Improve connect/disconnect log messages.
- Session options: Probe-specific options in a config file takes precedence over global options.
- Session options: A warning is logged if a multiple probe-specific option sections in a config file match the active debug probe's UID.
- Session: Change the working directory to the project directory on session creation.
- Gdbserver: Cleanup and fix connection disconnect code. This changes behaviour if the gdb `disconnect` command is used so that the `persist` option is honoured (`disconnect` previously would never cause the gdbserver to stop). (Thanks claymation)
- Gdbserver: `exit` monitor command that will shut down all gdbservers and quit pyocd.
- Gdbserver: Handle connection aborted and reset errors more cleanly.
- Gdbserver: Better logging of RTOS discovery issues, and only one log message is output when attempting to load RTOS plugins, in addition to a message on successful load.
- CoreSight DAP: Unlock probe on error. (Thanks claymation)
- CoreSight: Don't read CoreSight registers for non-CoreSight components. (Thanks j4cbo)
- CoreSight: Set `CSW.DBGSWEN` for CSSoC-400 APB-AP to resolve an issue that caused `DBGMCU` (and other) peripherals to be inaccessible on certain STM32 devices, and likely similar issues on other devices.
- Dependencies: Switch from naturalsort to natsort. (Thanks dvzrv)

Python API

- Introduced type annotations to a number of the most important parts of the pyocd source code.
- Add `CoreTarget` class, a superclass of `Target` instances for CPU cores.
- Ensure `set_clock()` works with float parameters for all probe drivers.
- J-Link: Fix `is_reset_asserted()` method.

Testing

- A new CI board farm is up and running the functional test suite with Azure Pipelines on macOS, Linux, and Windows. All test results are [publicly accessible](https://dev.azure.com/pyocd/pyocd/_build?definitionId=1&_a=summary).
- Improved command tests.
- Fixed a number of small functional test failures in CI.
- `automated_test.py` supports remote probes in its `-b` argument.
- Fix issues in the semihosting unit test and restore telnet tests.

Other

- `scripts/generate_flash_algo.py`: Removed the useless part of the standard flash algo blob header, leaving only the required breakpoint.

Many thanks to all the contributors who helped make this release possible! ❤️

**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.32.3...v0.33.0

0.32.3

Fixes

* J-Link: Fix SWO that was completely broken due to an invalid attribute name.
* STLink: Fix typo in USB PID map that caused probes with PID 0x3752 to be ignored.
* NXP i.MX RT family: Fix log exception if the vector table can't be determined.
* SWO: Fix invalid reference to `collections.Iterable`.
* Commander: Correct alignment of ASCII column in a hex dump with ragged end.
* CoreSight: Fix printing of negative addresses ROM table in certain cases.
* CoreSight: Power down DP only if resuming on disconnect.
* Flash: Fix flash unmodified page detection regression, causing optimized flash programming to not work.
* gdbserver: Return T response containing no register values if reading registers fails, perhaps if the core failed to halt.
* Package metadata: Correct URLs and classifiers.


**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.32.2...v0.32.3

0.32.2

Fixes

* Fix STM32l0x6 erase. (thanks michieldwitte!)
* Fix issues with parsing of bool session options
* commander: fix broken semicolon-separated commands from -c argument.
* docs: Fix a few typos (thanks timgates42!)

**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.32.1...v0.32.2

0.32.1

Additions

- Explicit Python 3.10 support and 3.10 wheels.
- JLinkProbe: added `jlink.non_interactive` option.

Targets

* Update flash algo for `lpc55s36`. (thanks Hoohaha!)

Fixes

* Session options: correctly handle session options with float values from the command line.
* Board: log description of exception during uninit.
* JLinkProbe: only connect if `jlink.device` is set.
* CortexM: fixed missing format args for warnings from post reset checks.
* Packs: correct which vendor is output for find and show.

Packaging

* Packaging: dependency version bumps and classifier update. This fixes the issue with a pyyaml version conflict.
* Packaging: bump cmsis-pack-manager to v0.4.0 release.

CI

* Workflows: add Python 3.10 to basic test.

**Full Changelog**: https://github.com/pyocd/pyOCD/compare/v0.32.0...v0.32.1

Page 2 of 11

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.