Skip to main content

Embedded Debug Tools

Project description

Embedded Debug Tools

The emdbg library connects several software and hardware debugging tools together in a user friendly Python package to more easily enable advanced use cases for ARM Cortex-M microcontrollers and related devices.

The library orchestrates the launch and configuration of hardware debug and trace probes, debuggers, logic analyzers, and waveform generators and provides analysis tools, converters, and plugins to provide significant insight into the software and hardware state during or after execution.

The main focus of this project is the debugging of the PX4 Autopilot firmware running the NuttX RTOS on STM32 microcontrollers on the FMUv5x and FMUv6x hardware inside the Auterion Skynode. However, the library is modular and the tools are generic so that it can also be used for other firmware either out-of-box or with small adaptations.

emdbg is maintained by @niklaut from Auterion.

Features

A number of GDB and NSH scripting examples for test automation can be found in the scripts folder.

Presentations

Sorted in reverse chronological order.

Utilizing Instruction Tracing to Analyze PX4 at Runtime

Presented at Auterion by Lukas von Briel on 2024-10-31.

Slides with Notes.

Analyzing Cortex-M Firmware with the Perfetto Trace Processor

Presented at emBO++ by Niklas Hauser on 2024-03-15.

Slides with Notes.

Debugging PX4

Presented at the PX4 Developer Summit by Niklas Hauser on 2023-10-22.

Slides with Notes.

Debugging and Profiling NuttX and PX4

Presented at the NuttX International Workshop by Niklas Hauser on 2023-09-29.

Debugging Microcontrollers

Presented at Chaos Communication Camp by Niklas Hauser on 2023-08-18.

Slides with Notes.

Installation

The latest version is hosted on PyPi and can be installed via pip:

pip3 install emdbg

You also need to install other command line tools depending on what you use:

Usage

Most modules have their own command-line interface. This library therefore has many entry points which can be called using python3 -m emdbg.{module}. The individual command line usage is documented in each module. The most important modules are emdbg.debug.gdb and emdbg.bench.fmu:

For example, launching GDB with TUI using a J-Link debug probe:

python3 -m emdbg.debug.gdb --elf path/to/firmware.elf --ui=tui jlink -device STM32F765II

Documentation

Most important user guides are available as Markdown files in the repository. You can browse the latest API documentation online at auterion.github.io/embedded-debug-tools.

Development

For development, checkout the repository locally, then install with the -e flag, which symlinks the relevant files into the package path:

cd embedded-debug-tools
pip3 install -e ".[all]"

You can also work on the documentation locally via pdoc:

pdoc emdbg
# pdoc server ready at http://localhost:8080

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

emdbg-1.8.1.tar.gz (417.6 kB view details)

Uploaded Source

Built Distribution

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

emdbg-1.8.1-py3-none-any.whl (465.1 kB view details)

Uploaded Python 3

File details

Details for the file emdbg-1.8.1.tar.gz.

File metadata

  • Download URL: emdbg-1.8.1.tar.gz
  • Upload date:
  • Size: 417.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emdbg-1.8.1.tar.gz
Algorithm Hash digest
SHA256 aa211dbb3ae75e890a9dc82e3c3ae49e595aee5b576f7d8f5575209442c0ea1d
MD5 dd489d08992b38ddada6024b72c18dac
BLAKE2b-256 316f51931d51d2dc435674784e32450c7d9eebb4ed8499a477a5224e2f2fa321

See more details on using hashes here.

Provenance

The following attestation bundles were made for emdbg-1.8.1.tar.gz:

Publisher: pypi.yml on Auterion/embedded-debug-tools

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

File details

Details for the file emdbg-1.8.1-py3-none-any.whl.

File metadata

  • Download URL: emdbg-1.8.1-py3-none-any.whl
  • Upload date:
  • Size: 465.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for emdbg-1.8.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5564595a134d3b2be2ff2f2c9c639abae3db3f531a5cbb1649db58b63aae68b9
MD5 adc941409890e8ed89ad3fda20605a68
BLAKE2b-256 3c256d1ae785e4fd20a2a7b412c0cfba8611d4aaa88b6e50e0a94cae585fa897

See more details on using hashes here.

Provenance

The following attestation bundles were made for emdbg-1.8.1-py3-none-any.whl:

Publisher: pypi.yml on Auterion/embedded-debug-tools

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