19 repository-uri
Low-level analysis and debugging of software running on embedded architectures like ARM Cortex M and RISC-V.
Distinct from System Debugging: Candidates focus on RISC-V optimizations or hardware interfaces; this is a broad domain for debugging embedded software via emulators or hardware.
Explore 19 awesome GitHub repositories matching hardware & iot · Embedded Systems Debugging. Refine with filters or upvote what's useful.
pwndbg is a GDB plugin and binary analysis framework designed for reverse engineering, exploit development, and low-level program analysis. It extends the core functionality of the debugger to provide advanced memory inspection and automation tools. The project distinguishes itself with specialized capabilities for heap analysis across glibc, jemalloc, and musl, as well as a comprehensive kernel debugging toolkit for inspecting Linux kernel tasks and slab allocators. It includes an integrated ROP gadget searcher for constructing exploit chains and an LLM-powered debugging assistant that provi
Supports analyzing software running on ARM Cortex M and RISC-V architectures through emulators or hardware connections.
PlatformIO Core is a toolset for embedded software development that manages the compilation, flashing, and debugging of firmware for various microcontroller targets. It provides a cross-platform build system that automates the process of transforming source code into binaries and transferring them to hardware via serial protocols. The system uses a plugin-based architecture to extend hardware platform support and incorporates a manifest-driven approach to resolve and install the specific toolchains, frameworks, and libraries required for different board definitions. Capabilities cover the fu
Runs debuggers on target hardware to inspect state and step through execution for embedded software.
Serial Studio is a desktop application for connecting to, decoding, visualizing, and recording data from hardware devices over multiple communication protocols. It functions as an embedded device debugging toolkit that ingests live data from Serial, Bluetooth, CAN, Modbus, MQTT, and network sockets into a unified dashboard, while also serving as a programmatic automation platform with over 320 commands exposed over TCP, gRPC, and MCP for external control. The application distinguishes itself through a scriptable frame pipeline that routes incoming bytes through configurable detection, decodin
Provides a toolkit for parsing binary protocols, decoding frames, and sending commands to microcontrollers and instruments.
Acest proiect este o bibliotecă Node.js pentru porturi seriale care oferă o interfață JavaScript pentru citirea și scrierea datelor pe porturi seriale hardware. Acesta funcționează ca un driver de nivel scăzut și o bibliotecă de comunicare hardware concepută pentru a schimba fluxuri de date între un computer și dispozitive hardware externe. Biblioteca suportă comunicarea serială cross-platform pe Linux, macOS și Windows. Permite stabilirea conexiunilor de date între aplicații de nivel înalt și controllere embedded, microcontrollere sau alte dispozitive hardware. Suprafața de capabilități acoperă integrarea hardware pentru software-ul de control al roboților, gestionarea dispozitivelor Internet of Things și interfațarea generală a sistemelor embedded.
Facilitates data connections between high-level JavaScript applications and embedded microcontrollers.
Digital este un simulator de circuite logice digitale și un instrument de verificare a designului hardware. Oferă un mediu vizual pentru proiectarea, testarea și verificarea circuitelor electronice folosind simulare bazată pe evenimente și sinteză logică automatizată. Platforma funcționează ca un instrument de sinteză logică care aplică algebra booleană pentru a minimiza configurațiile porților și a converti tabelele de adevăr în hardware eficient. Servește, de asemenea, ca instrument de export HDL, traducând grafurile vizuale ale circuitelor în cod VHDL sau Verilog, și ca instrument de implementare CPLD care generează fișiere JEDEC pentru programarea cipurilor logice. Software-ul acoperă o gamă largă de capabilități, inclusiv designul mașinilor cu stări finite (FSM), organizarea ierarhică și parametrizată a circuitelor și vizualizarea stării semnalelor. Include utilitare pentru verificarea logică automatizată, urmărirea propagării semnalelor și o interfață la distanță bazată pe TCP pentru gestionarea simulatorului și depanarea sistemelor embedded.
Enables low-level debugging of embedded architectures by controlling virtual hardware simulations over a network connection.
stlink este un set de instrumente pentru flashing-ul ARM Cortex-M, gestionarea firmware-ului și operațiuni de server de debug, cu suport specific pentru microcontrolerele STM32. Oferă un programator flash ARM Cortex-M pentru scrierea fișierelor binare și hex, un logger de trace ITM pentru date de instrumentare în timp real și un server de debug SWD/JTAG. Proiectul include o interfață grafică pentru gestionarea firmware-ului MCU și exportul memoriei, precum și un server la distanță care permite debuggerelor externe să controleze execuția și să inspecteze registrele pe hardware-ul țintă. Setul de instrumente acoperă gestionarea memoriei microcontrolerului prin ștergerea flash-ului și configurarea octeților de opțiune, precum și observabilitatea sistemului prin semihosting și înregistrarea trace-ului de execuție. De asemenea, oferă utilitare pentru extragerea informațiilor despre cip și resetarea dispozitivelor.
Enables low-level analysis, register inspection, and execution control for ARM Cortex-M microcontrollers.
Hotspot este o interfață grafică pentru analizarea și vizualizarea datelor de performanță capturate de instrumentul Linux perf. Acesta funcționează ca un vizualizator de profilare a performanței și un profiler la nivel de asamblare care mapează costurile de performanță către instrucțiuni specifice sincronizate cu codul sursă original. Proiectul se distinge printr-un resolver de simboluri la distanță care mapează datele de performanță de la țintele embedded către simbolurile de debug ale gazdei locale și sysroots. Include, de asemenea, un instrument specializat de analiză off-CPU conceput pentru a identifica timpii de așteptare ai thread-urilor și blocajele I/O folosind tracepoint-urile scheduler-ului de kernel. Instrumentul acoperă o gamă largă de capabilități de analiză a performanței, inclusiv profilarea CPU, inspecția codului de nivel scăzut și filtrarea datelor bazată pe cronologie. Oferă metode de vizualizare precum flame graphs și call graphs pentru a identifica blocajele sistemului și funcțiile inlined. Sistemul suportă înregistrarea datelor prin lansarea instrumentelor de profilare pentru aplicații noi sau atașarea la procese existente și permite exportul profilurilor de performanță analizate în formate portabile pentru partajarea între mașini.
Supports debugging software on embedded architectures by mapping performance data to local host debug symbols.
Arduino CLI este o interfață în linie de comandă pentru compilarea, încărcarea și gestionarea bibliotecilor și a nucleelor de plăci pentru hardware-ul compatibil Arduino. Acesta funcționează ca un manager de toolchain pentru microcontrolere și instrument de programare hardware, oferind utilitare pentru a descoperi și instala definițiile de platformă și compilatoarele necesare pentru diverse arhitecturi hardware. Proiectul dispune de un daemon de dezvoltare cu suport RPC care permite programelor externe să declanșeze operațiuni interne ale instrumentului și să gestioneze fluxurile de lucru electronice automatizate programatic. De asemenea, include un debugger hardware interactiv pentru depanarea în timp real a codului care rulează pe dispozitive fizice. Instrumentul acoperă gestionarea plăcilor și a bibliotecilor, inclusiv analiza dependențelor, sincronizarea indexului și integrarea repository-urilor terțe. Capabilitățile sale de build și deployment includ compilarea codului sursă, încărcarea binară și instalarea bootloader-ului, susținute de monitorizarea output-ului serial și detectarea hardware-ului conectat. Utilitarul oferă generarea de completare pentru shell și gestionează setările de mediu printr-un sistem de configurare bazat pe fișiere.
Supports real-time serial output monitoring and interactive debugging sessions for troubleshooting physical hardware.
LiteOS este un kernel de sistem de operare în timp real ușor, conceput pentru dispozitive constrânse cu memorie și putere de procesare limitate. Oferă o fundație pentru dezvoltarea IoT embedded, concentrându-se pe gestionarea stabilă și predictibilă a resurselor de sistem. Sistemul implementează un scheduler de sarcini preemptiv și gestionarea resurselor bazată pe întreruperi pentru a asigura responsivitatea în timp real. Încorporează un mecanism de idle tickless și cicluri de sleep-wake optimizate pentru a reduce consumul de energie în hardware-ul alimentat de baterii. Kernel-ul include capabilități pentru sincronizarea sarcinilor prin semafoare și alocarea statică a memoriei pentru a preveni fragmentarea la runtime. Funcționalitatea suplimentară acoperă integrarea în cloud IoT prin protocoale standard de transmisie securizată a datelor, monitorizarea performanței sistemului și un shell cu interfață serială pentru debugging-ul sistemului și executarea comenzilor.
Supports low-level analysis and debugging of embedded software via CPU monitoring and serial shell commands.
CircuitPython este un derivat specializat al runtime-ului MicroPython, conceput ca un interpretor Python embedded pentru microcontrollere. Acesta oferă un mediu de limbaj de nivel înalt care permite accesul direct la hardware printr-un strat dedicat de abstractizare hardware și un runtime Python pentru microcontrollere. Proiectul se distinge prin firmware-ul care expune microcontrolerul ca un dispozitiv de stocare în masă USB nativ. Acest lucru permite utilizatorilor să editeze codul direct pe dispozitiv ca și cum ar fi o unitate detașabilă, eliminând nevoia de instrumente de flashing specializate și permițând reîncărcarea codului declanșată de sistemul de fișiere. Sistemul acoperă o gamă largă de capabilități, inclusiv accesul API hardware unificat pentru controlul componentelor electronice pe diferite plăci, comunicarea bazată pe serial prin REPL și WebUSB și un sistem bazat pe porturi pentru compilarea firmware-ului specific plăcii. Include, de asemenea, instrumente pentru dezvoltatori, cum ar fi generarea de type stub-uri pentru analiză statică și un mod de recuperare în caz de crash pentru a menține accesibilitatea dispozitivului în timpul depanării.
Supports monitoring real-time device logs and inspecting firmware state through serial consoles and debugging probes.
Vimspector is a visual debugger integration for Vim that enables developers to step through code and inspect program state without leaving the editor. It utilizes the Debug Adapter Protocol to provide a unified interface for debugging multiple programming languages through various debug adapters. The project distinguishes itself by supporting low-level analysis and specialized environments, including bare metal hardware debugging for microcontrollers and the ability to perform disassembly analysis and process memory dumping. It also provides remote debugging capabilities by proxying requests
Uses hardware probes to program and debug microcontrollers and bare metal hardware directly from the editor.
NuttX este un sistem de operare în timp real (RTOS) compatibil POSIX, conceput pentru microcontrolere de la arhitecturi pe 8 biți până la 64 de biți. Oferă un mediu de execuție determinist cu un scheduler de task-uri în timp real și un kernel embedded POSIX pentru a asigura execuția portabilă a codului pe diverse ținte hardware. Proiectul se distinge printr-un strat de abstractizare hardware cuprinzător care oferă drivere standardizate pentru I2C, SPI, CAN și USB pe diverse chipset-uri semiconductoare. De asemenea, dispune de un stack de rețea embedded care suportă TCP, UDP, IPv4 și IPv6, alături de protocoale industriale precum Modbus și DroneCAN. Sistemul acoperă o gamă largă de capabilități, inclusiv gestionarea avansată a memoriei cu paginare la cerere, operațiuni criptografice securizate și un sistem de fișiere virtual pentru gestionarea tipurilor de stocare disparate. De asemenea, integrează interfețe de nivel înalt pentru interfețe grafice (GUI), sinteză audio și execuția mai multor limbaje de scripting și workload-uri WebAssembly. Mediul este construit folosind Make sau CMake pentru a viza configurații specifice de plăci și chipset-uri.
Provides tools for stack overflow checks, core dumps, and hardware-assisted tracing on embedded architectures.
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 f
Performs low-level analysis, watchpoints, and register examinations on ARM Cortex and RISC-V embedded targets.
vrtk is a virtual reality interaction framework and locomotion system designed to build consistent 3D object interactions and user interfaces across different hardware. It provides a hardware-agnostic movement model that decouples player navigation logic from specific controller inputs to ensure cross-platform compatibility. The project includes a spatial UI kit for rendering 2D and 3D interactive menus and physical controls specifically for head-mounted displays. It utilizes an event-driven input layer to translate physical pointer and touch data into virtual object events and actions. The
Simulates real-world physical controls like levers and buttons by combining 3D geometry with interactive state logic.
ZSWatch is a real-time operating system for wearable devices featuring a touch display and Bluetooth Low Energy connectivity. It provides a comprehensive software suite that includes a Bluetooth LE communication stack, an embedded UI framework for round displays, and a complete firmware toolchain for compiling, flashing, and simulating wearable hardware. The project is distinguished by its specialized wearable capabilities, such as a graphical framework for designing reactive screens and watchfaces via a visual editor. It implements a publish-subscribe messaging system to decouple hardware se
Verifies application behavior and UI layouts in a native window without requiring physical hardware.
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
Provides a comprehensive toolset for flashing, debugging, and inspecting embedded microcontrollers via hardware debug probes.
darkriscv is a collection of tools and projects for RISC-V processor implementation, hardware debugging, and automated FPGA synthesis. It provides a hardware design that implements a RISC-V processor core and system components for deployment on programmable logic. The project includes a hardware debugger with a command-line interface for verifying processor state by manipulating registers and dumping memory on a hardware target. It also features a set of scripts and project files to automate the synthesis and programming of hardware designs within a Linux environment. The codebase covers har
Enables low-level analysis of RISC-V processor state by manipulating registers and dumping memory.
Chips este un framework de bibliotecă C modular, header-only, conceput pentru construirea de simulatoare hardware precise la nivel de ciclu și replicarea arhitecturilor de calcul istorice pe opt biți. Oferă componentele fundamentale necesare pentru a construi sisteme vintage complete prin integrarea microprocesoarelor emulate individuale și a cipurilor periferice. Framework-ul se distinge printr-o arhitectură bazată pe componente, unde modulele hardware sunt implementate ca headere de sine stătătoare care pot fi interconectate pentru a forma sisteme complexe. Modelează interacțiunile hardware la un nivel scăzut, utilizând emularea semnalelor la nivel de pin și comunicarea pe magistrală mapată în memorie pentru a asigura un comportament determinist. Dezvoltatorii pot captura întreaga stare internă a unui emulator într-un buffer de memorie, permițând snapshot-uri persistente și restaurarea precisă a stării. Proiectul include o suită completă de instrumente de diagnosticare și dezvoltare, cum ar fi vizualizarea depanării în mod imediat și monitorizarea în timp real a registrelor de sistem și a framebuffer-elor. De asemenea, oferă utilitare de linie de comandă pentru a automatiza generarea definițiilor componentelor hardware și a codului sursă, facilitând construcția de medii embedded personalizate.
Provides tools for inspecting hardware state and cycle-accurate timing to troubleshoot embedded software behavior.
Open-smartwatch-os este un sistem de operare conceput pentru dispozitive purtabile cu resurse limitate. Acesta oferă un mediu de dezvoltare și testare care permite dezvoltatorilor să construiască, să valideze și să depaneze firmware-ul pentru ceasuri inteligente într-un mediu desktop simulat înainte de a-l implementa pe hardware fizic. Proiectul se distinge printr-o suită cuprinzătoare de instrumente pentru emularea hardware și diagnosticare la distanță. Prin utilizarea unui strat de abstractizare hardware și a unei arhitecturi modulare de drivere, acesta decuplează logica de bază a sistemului de componentele fizice specifice. Acest lucru permite dezvoltatorilor să ruleze sistemul de operare ca o aplicație desktop, facilitând iterarea rapidă prin testare automatizată și analiză de regresie vizuală. Platforma include utilitare integrate pentru monitorizare și observabilitate, cum ar fi protocoale de depanare bazate pe serial pentru streaming-ul log-urilor de sistem și al urmelor de excepție. De asemenea, suportă capturarea display-ului la distanță, care serializează datele brute de pixeli din framebuffer-ul virtual către instrumente de monitorizare externe, permițând vizualizarea în timp real și asigurarea calității stărilor interfeței utilizator.
Troubleshoots complex errors and verifies system configurations by streaming logs and exception traces over serial connections.