awesome-repositories.com
Blog
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectAboutHow we rankPressMCP server
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
·
blackmagic-debug avatar

blackmagic-debug/blackmagicArchived

0
View on GitHub↗
3,715 stars·844 forks·GPL-3.0·3 viewscodeberg.org/blackmagic-debug/blackmagic↗

Blackmagic

Blackmagic is a GDB server for embedded hardware that translates GDB remote protocol messages into JTAG and SWD commands. It functions as an ARM and RISC-V debugger and hardware debug probe manager, enabling users to inspect memory, control execution, and manage registers on ARM Cortex and RISC-V cores.

The project distinguishes itself by acting as a remote hardware debugging bridge that can stream GDB server traffic over TCP/IP to control physical hardware from a remote machine. It also provides a JTAG and SWD interface to connect host computers to target hardware and serves as an embedded flash programmer for reading, erasing, and writing firmware images to on-chip and SPI flash memory.

The system covers broad capabilities in debug probe management, interfacing with various hardware probes such as CMSIS-DAP, J-Link, and ST-Link. It includes features for embedded device monitoring, such as capturing real-time logs and data using semihosting or serial wire output, and supports automated target identification to remove the need for configuration scripts.

The software communicates with host operating systems using a standard USB CDC ACM virtual serial port to eliminate the need for proprietary drivers.

Features

  • GDB Server Implementations - Implements a GDB server that allows standard debuggers to control ARM Cortex and RISC-V microcontrollers.
  • Embedded Systems Debugging - Performs low-level analysis, watchpoints, and register examinations on ARM Cortex and RISC-V embedded targets.
  • RISC-V Debugging - Acts as a GDB server to control execution and inspect registers and memory on RISC-V processor cores.
  • Flash Memory Access - Provides raw flash memory hardware access for reading and writing persistent data, including SPI flash.
  • Flash Memory Erasing Tools - Provides utilities for clearing specific memory ranges or performing mass erasures of target device flash memory.
  • Flash Storage Managers - Manages non-volatile flash memory including reading, writing, and erasing for various bank configurations.
  • Network Bridging - Streams GDB server traffic over IPv4 and IPv6 networks to enable remote hardware debugging via TCP/IP.
  • Signal Translation - Translates high-level GDB remote protocol commands into low-level JTAG and SWD physical signals.
  • Interface Detection - Automatically detects whether a target microcontroller uses JTAG or SWD communication protocols.
  • ARM Cortex Debugging - Controls and inspects ARM Cortex-M, Cortex-A, and Cortex-R processor cores via JTAG and SWD.
  • ARM Debugging - Enables memory inspection and execution control on ARM Cortex processor cores.
  • Automatic Target Detection - Automatically identifies connected microcontrollers by scanning hardware IDs and ROM tables.
  • Binary Flashing - Writes compiled binary images to microcontroller flash and verifies the data against the source.
  • Firmware Flashing - Uploads firmware images in standard formats like Intel HEX to a microcontroller's non-volatile memory.
  • Debug Probe Abstractions - Interfaces with a variety of debug probes to establish stable communication with target hardware.
  • Probe Managers - Interfaces with various hardware probes like CMSIS-DAP, J-Link, and ST-Link to manage target devices.
  • Microcontroller Flash Programmers - Reads, writes, and verifies binary files directly on the non-volatile flash memory of microcontrollers.
  • GDB-to-Hardware Bridges - Connects GDB to microcontrollers via JTAG and SWD interfaces to enable hardware debugging.
  • Microcontroller Debugging Workflows - Provides workflows for monitoring microcontroller state and diagnostic data via serial interfaces.
  • SPI Flash Programming - Reads and writes to external SPI NOR flash chips through emulated programmer interfaces.
  • Protocol Translation Bridges - Acts as a structural bridge translating GDB remote protocol messages into JTAG and SWD commands.
  • Probe Backend Abstractions - Interfaces with target hardware using multiple probe backends to maintain stable communication links.
  • Hardware Execution Control - Manages target execution through a combination of hardware watchpoints and flash memory breakpoints.
  • Hardware Watchpoint Management - Enables monitoring of specific execution paths by setting hardware watchpoints on ARM and RISC-V processors.
  • Remote Debugging Bridges - Streams debugging traffic over IPv4 or IPv6 network sockets to enable remote control of hardware probes.
  • Hardware Debugging Protocols - Implements protocols to communicate between GDB and remote hardware probes for physical target control.
  • Hardware Watchpoints - Configures hardware watchpoints to trigger execution breaks on specific memory address accesses.
  • Debug Probe Interfaces - Establishes communication links between the host and target hardware using standardized debug probes.
  • Debug Probe Compatibility - Communicates with a diverse range of hardware probes including ST-Link, CMSIS-DAP, J-Link, and FTDI MPSSE.
  • Hardware Capability Probes - Manages various hardware probe types and adaptors to ensure a reliable connection to the target.
  • Processor State Inspection - Analyzes the internal state of the target processor, including registers and memory.
  • Embedded System State Managers - Manages target power states and freezes watchdog timers to prevent system resets during CPU halts.
  • Transfer Stubs - Uses optimized memory-resident code on the target device to accelerate binary image writing to flash.
  • Port-Based Detection - Scans connected hardware ports automatically to identify specific microcontroller devices before attaching a debugger.
  • Hardware Debugging - Provides tools for diagnosing and managing live hardware environments, including sleep modes and option bytes.
  • Host-Target Data Streaming - Exchanges data between the target microcontroller and host computer using semihosting and serial channels.
  • Serial Communication Interfaces - Communicates with host computers using a virtual serial port (USB CDC ACM) to eliminate proprietary drivers.
  • USB Serial Interfaces - Uses standard USB CDC ACM virtual serial ports to communicate with host operating systems without proprietary drivers.
  • Real-Time Target Data Streaming - Captures and displays real-time transfer data from the target microcontroller via a USB serial connection.
  • Semihosting Data Exchange - Exchanges data and logs between target hardware and the host computer using semihosting and serial wire.
  • Interface Protocol Scanning - Implements automated scanning of target devices to determine the active communication protocol for connection automation.
  • Hardware ID Device Discovery - Identifies connected microcontrollers by scanning hardware interfaces for designer IDs and ROM tables.
  • Semihosting Redirections - Redirects microcontroller system calls and real-time transfer data to a host USB serial connection.
  • Hardware Probe Logs - Streams real-time diagnostic and debug logs from the probe's auxiliary serial interface.
  • Probe Hardware Identification - Scans for and identifies connected debug probes across various communication backends.
  • Embedded Log Capture - Captures real-time logs and execution data from embedded microcontrollers using semihosting and serial wire.

Star history

Star history chart for blackmagic-debug/blackmagicStar history chart for blackmagic-debug/blackmagic

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Open-source alternatives to Blackmagic

Similar open-source projects, ranked by how many features they share with Blackmagic.
  • stlink-org/stlinkstlink-org avatar

    stlink-org/stlink

    5,093View on GitHub↗

    stlink is a toolset for ARM Cortex-M flashing, firmware management, and debug server operations, with specific support for STM32 microcontrollers. It provides an ARM Cortex-M flash programmer for writing binary and hex files, an ITM trace logger for real-time instrumentation data, and a SWD/JTAG debug server. The project includes a graphical user interface for managing MCU firmware and exporting memory, as well as a remote server that allows external debuggers to control execution and inspect registers on target hardware. The toolset covers microcontroller memory management through flash era

    Carmboardchip
    View on GitHub↗5,093
  • probe-rs/probe-rsprobe-rs avatar

    probe-rs/probe-rs

    2,599View on GitHub↗

    probe-rs is an embedded debugging toolset used for flashing, debugging, and inspecting microcontrollers via hardware debug probes. It functions as an embedded firmware flasher, a memory manager for reading and writing to processor registers, and a server implementing the Debug Adapter Protocol to connect hardware debugging to various code editors. The project includes a CMSIS-Pack target parser to extract device metadata and flash configurations from industry-standard definition files. It provides a driver-based probe abstraction to interact with various hardware debug probes regardless of th

    Rustarmarm-corescoresight
    View on GitHub↗2,599
  • earlephilhower/arduino-picoearlephilhower avatar

    earlephilhower/arduino-pico

    2,812View on GitHub↗

    This project provides a development framework that enables programming Raspberry Pi Pico microcontrollers using the Arduino environment and standard C++ libraries. It serves as a unified platform for compiling, debugging, and deploying firmware to diverse hardware boards based on the RP2040 and RP2350 architectures. The framework distinguishes itself through native support for symmetric multicore execution, allowing developers to distribute independent tasks across multiple processor cores to manage complex workloads. It also includes a specialized library for USB peripheral emulation, enabli

    Ca2dparduinoarduino-pico
    View on GitHub↗2,812
  • tinygo-org/tinygotinygo-org avatar

    tinygo-org/tinygo

    17,529View on GitHub↗

    TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to resource-constrained microcontrollers and WebAssembly environments. It provides a bare-metal runtime environment that enables high-level code execution without the need for a traditional operating system, utilizing an LLVM-based backend to generate efficient machine instructions. The project distinguishes itself through aggressive optimization techniques tailored for small hardware, including a static memory allocation strategy and whole-program dead code elimination that significantly re

    Goadafruitarduinoarm
    View on GitHub↗17,529
See all 30 alternatives to Blackmagic→

Frequently asked questions

What does blackmagic-debug/blackmagic do?

Blackmagic is a GDB server for embedded hardware that translates GDB remote protocol messages into JTAG and SWD commands. It functions as an ARM and RISC-V debugger and hardware debug probe manager, enabling users to inspect memory, control execution, and manage registers on ARM Cortex and RISC-V cores.

What are the main features of blackmagic-debug/blackmagic?

The main features of blackmagic-debug/blackmagic are: GDB Server Implementations, Embedded Systems Debugging, RISC-V Debugging, Flash Memory Access, Flash Memory Erasing Tools, Flash Storage Managers, Network Bridging, Signal Translation.

What are some open-source alternatives to blackmagic-debug/blackmagic?

Open-source alternatives to blackmagic-debug/blackmagic include: stlink-org/stlink — stlink is a toolset for ARM Cortex-M flashing, firmware management, and debug server operations, with specific support… probe-rs/probe-rs — probe-rs is an embedded debugging toolset used for flashing, debugging, and inspecting microcontrollers via hardware… earlephilhower/arduino-pico — This project provides a development framework that enables programming Raspberry Pi Pico microcontrollers using the… tinygo-org/tinygo — TinyGo is a specialized compiler and development toolkit designed to bring the Go programming language to… platformio/platformio-core — PlatformIO Core is a toolset for embedded software development that manages the compilation, flashing, and debugging… hyperdbg/hyperdbg — HyperDbg is a hardware-assisted kernel-mode debugging platform that leverages virtualization to monitor and control…