Skip to main content

A cross-platform GDB server for AVR MCUs

Project description

PyAvrOCD

License: MIT PyPI version PyPI Downloads PyPI Python Version Static Badge Pylint badge Pytest badge Coverage badge Release workflow Commits since latest GitHub Issues or Pull Requests GitHub Issues or Pull Requests GitHub Downloads (all assets, all releases) Hit Counter

PyAvrOCD is a GDB server for 8-bit AVR MCUs (see list of supported MCUs and supported boards), enabling you to debug programs running on these MCUs using the GNU Project Debugger GDB. PyAvrOCD communicates with Microchip's debug probes, such as the very affordable MPLAB Snap, and it provides a pass-through service for the UNO-based debug probe dw-link and the simulation tool simavr (see list of supported debug probes).

So, why another open-source GDB server for AVR MCUs? The main intention is to provide a cross-platform AVR GDB server. In other words, it is the missing AVR debugging solution for the Arduino IDE 2 and PlatformIO. In particular, the integration with Arduino IDE 2 is pretty tight, allowing one to start debugging without much hassle (see quickstart guides). Additionally, PyAvrOCD excels in minimizing flash wear and protects single-stepping against interrupts.

Interested in giving PyAvrOCD a try? You are welcome to install it. Want to learn more about it? Read the docs. Any feedback, be it bug reports, crazy ideas, or praise, is welcome.

What has been done so far, and what to expect in the future

Meanwhile, PyAvrOCD covers all debugWIRE, JTAG (Megas), and UPDI MCUs. I am unsure whether it makes sense to extend its coverage to Xmegas. There is the idea of basing everything on more recent versions of the GCC toolchain because it will probably solve a number of problems on the debugging front. Finally, I am committed to fixing some of the more obvious bugs in the AVR part of the GDB debugger.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyavrocd-1.5.3.tar.gz (9.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pyavrocd-1.5.3-py3-none-any.whl (10.2 MB view details)

Uploaded Python 3

File details

Details for the file pyavrocd-1.5.3.tar.gz.

File metadata

  • Download URL: pyavrocd-1.5.3.tar.gz
  • Upload date:
  • Size: 9.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyavrocd-1.5.3.tar.gz
Algorithm Hash digest
SHA256 3d35812f77748b4a1fff6d2f053fc034756c577873fd94d7db5a54ddc101c2e3
MD5 03a0fed26a732a4fe2780fe95ca894f4
BLAKE2b-256 829ca11ea1d2110d0da81c9f67d499ae8c0ec4564dcb2470f122ccc673970b95

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyavrocd-1.5.3.tar.gz:

Publisher: release.yml on felias-fogg/PyAvrOCD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file pyavrocd-1.5.3-py3-none-any.whl.

File metadata

  • Download URL: pyavrocd-1.5.3-py3-none-any.whl
  • Upload date:
  • Size: 10.2 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pyavrocd-1.5.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2db3d5ebc09489a08f49d2c738370aca8890ceee27c5db3d1a79963deb67e20d
MD5 88e2e3b12074688b9c59a85c275b3983
BLAKE2b-256 0d144b0ca176e4bccb2b5dda23bb4639acead0bda8b48c0459f4d2371209b9f1

See more details on using hashes here.

Provenance

The following attestation bundles were made for pyavrocd-1.5.3-py3-none-any.whl:

Publisher: release.yml on felias-fogg/PyAvrOCD

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page