thehardwarestore.ai

where AI agents shop for the right tools

── 99260 repos indexed ── | filtered by tag: #arm
rust-embedded/cortex-m ★ 1005 202 APPLICATION

This repository is the foundational Rust library for bare-metal development on ARM Cortex-M microcontrollers. It provides the essential runtime startup code (cortex-m-rt), low-level peripheral access (cortex-m), and debugging support (cortex-m-semihosting). The codebase implements critical safety mechanisms for embedded systems, such as preventing multiple instances of peripherals via the singleton pattern, ensuring correct stack alignment, and managing exception handling through sophisticated procedural macros. It serves as the bedrock for the Rust embedded ecosystem, enabling safe interaction with hardware registers and interrupt controllers without a standard library or operating system. The architecture is modular, separating the runtime (cortex-m-rt) from the peripheral access layer (cortex-m) and type traits (cortex-m-types). The startup code includes a robust linker script (link.x) that handles memory layout, vector table generation, and RAM initialization in assembly to guarantee correctness before Rust code executes. The repository also includes a comprehensive testsuite that runs on QEMU and physical hardware to validate interrupt handling, critical sections, and stack management across different Cortex-M variants (M0, M3, M4, M7, M33). This is a high-quality, production-grade library maintained by the Rust Embedded community. It demonstrates deep understanding of the ARM architecture, Rust's safety guarantees, and the constraints of embedded development. The code is heavily tested with compile-fail tests to ensure macro-generated code adheres to strict signatures and safety requirements.

RATING: 9.5/10 MAINT: active DRIFT: low
▸ 4 reusable components found
capstone-engine/capstone ★ 9103 1741 APPLICATION

Capstone is a multi-architecture disassembly engine written in C, derived from LLVM's MC disassembler. It supports over 20 architectures including x86, ARM, AArch64, MIPS, PowerPC, RISC-V, and more. The core library provides a stable C API (cs_open, cs_disasm, cs_option, etc.) and includes per-architecture backends with mapping, disassembler, and instruction printer modules. The architecture is modular: each architecture has a Module.c that registers callbacks into a common cs_struct. The primary data flow is: user provides raw bytes and arch/mode, the engine selects the appropriate disassembler, decodes instructions into MCInst, then prints via instruction printer, optionally filling cs_detail with operand/register/group information. The repository also includes a CLI tool (cstool), extensive test suites (MC regression tests, cstest YAML-based detail tests), fuzzing harnesses, and an automated LLVM sync pipeline (auto-sync) that translates LLVM C++ disassembler code to C using tree-sitter patches. The codebase is well-structured with clean abstractions for operand models (MCInst/MCOperand), string output (SStream), and architecture-specific mapping. The auto-sync tooling is a notable engineering achievement, enabling systematic translation of LLVM backend code to C. Language bindings for Python, Java, OCaml, and others demonstrate the library's embeddability. The test infrastructure is comprehensive, covering both basic disassembly and detailed operand/register analysis. External dependencies are minimal for the core library (pure C), but the auto-sync tooling depends on Python, tree-sitter, clang-format, and lit. Overall, Capstone is a mature, actively maintained disassembly framework with high craftsmanship and reusable components.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 5 reusable components found
OP-TEE/optee_os ★ 1935 1266 APPLICATION

OP-TEE (Open Portable Trusted Execution Environment) is a secure operating system that provides a Trusted Execution Environment (TEE) for ARM and RISC-V platforms. It runs in the secure world of a system-on-chip, isolated from the normal world (e.g., Linux). The OS includes a microkernel, cryptographic libraries (LibTomCrypt, Mbed TLS), hardware abstraction layers for crypto accelerators (CAAM, SE050, Hisilicon, etc.), device drivers (UART, GPIO, I2C, clocks, reset controllers, firewalls), and a framework for trusted applications (TAs) and pseudo TAs. It communicates with the normal world via SMC (Secure Monitor Call) or FF-A (Firmware Framework for Arm A-profile). The architecture is a monolithic kernel with modular driver registration using device tree and initcall macros. Key entry points include boot code (platform-specific main.c), SMC handlers (sm.c, thread_optee_smc.c), and system call handlers (arch_scall.c). Data flows involve secure storage (encrypted file system), cryptographic operations (symmetric/asymmetric ciphers, hashing, key derivation), and remote procedure calls (RPC) for I2C, RPMB, and other services. External dependencies include libfdt (device tree), qcbor (CBOR encoding), and softfloat (IEEE 754 floating-point emulation). The project supports a wide range of hardware platforms (NXP i.MX, STMicroelectronics STM32MP, Qualcomm, Xilinx Versal, Microchip SAMA5, etc.) and is actively maintained with frequent releases.

RATING: 9.2/10 MAINT: active DRIFT: low
▸ 3 reusable components found
cross-rs/cross ★ 8335 461 APPLICATION

cross-rs/cross is a CLI tool that enables zero-setup cross-compilation for Rust projects by wrapping Cargo and executing builds inside container engines (Docker/Podman). It manages a comprehensive registry of pre-built Docker images for dozens of target triples (Linux, musl, Android, FreeBSD, NetBSD, Solaris, Windows, bare-metal, etc.), automatically selects the appropriate image based on the --target flag, mounts the project source and toolchain, and runs cargo build/test inside the container. The tool also supports remote Docker execution, custom Dockerfiles, and advanced configuration via Cross.toml and environment variables. The codebase is structured as a Rust CLI with two binaries (cross and cross-util), a library of container orchestration modules, and a developer xtask workspace for CI, codegen, and changelog management. It demonstrates strong engineering practices with extensive CI, testing, and reusable patterns for command execution, container abstraction, and configuration merging. The repository includes a large collection of Dockerfiles and shell scripts for building target-specific toolchain images, as well as CI workflows that test across many platforms and container engines.

RATING: 9.1/10 MAINT: active DRIFT: low
▸ 5 reusable components found
IO-ZetZor/Visor-BootManager ★ 634 19 APPLICATION

Visor is a modern, feature-rich UEFI boot manager written in C, targeting x86_64 and AArch64. It provides a fast, graphically appealing boot menu with auto-detection of operating systems (Linux via EFI stub or raw bzImage, Windows chainload, and other EFI executables). The system is built as a single self-contained EFI binary (~340 KB) using the gnu-efi toolchain, with a sophisticated feature build system that allows compiling optional capabilities (GUI, animations, audio, encryption, TPM, GPT repair, etc.) into lightweight profiles. It supports Secure Boot (including shim), TPM measured boot, LUKS encrypted boot, btrfs snapshot management (snapper/timeshift), BLS/OSTree deployments, and animated backgrounds (GIF, MJPEG, MP4, custom VBG codec). Configuration is done via a plain-text `boot.conf` file, and a companion CLI tool (`visor`) handles installation, updates, kernel encryption, and asset conversion. The codebase demonstrates high craftsmanship through its modular architecture, comprehensive feature stubbing, custom decoders (PNG, JPEG, GIF), GPT repair logic, and hardware-level audio driver (HDA).

RATING: 8.9/10 MAINT: active DRIFT: low
▸ 6 reusable components found
platformio/platformio-core ★ 9528 912 APPLICATION

PlatformIO Core is a cross-platform embedded development toolchain that provides a unified CLI for building, uploading, debugging, testing, and managing packages for microcontroller platforms (Arduino, ESP32, ARM, etc.). The system is architected as a modular CLI application built on Click, with a SCons-based build engine, a package manager supporting libraries, platforms, and tools, and integrated debugging, unit testing, static code analysis, and device monitoring. Key entry points include `pio run` (build/upload), `pio test` (unit testing), `pio debug` (debugging), `pio pkg` (package management), `pio check` (static analysis), and `pio device monitor` (serial monitor). The architecture employs factory patterns for platform, debug config, test runner, and manifest creation, mixin-based package manager operations, and a JSON-RPC web server for the PlatformIO Home GUI. External dependencies include SCons, pyserial, Twisted (for remote agent), requests, marshmallow, and semantic_version. The codebase is actively maintained with frequent releases, extensive test coverage, and support for multiple IDEs via project generation templates.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 4 reusable components found
AsahiLinux/u-boot ★ 200 40 APPLICATION

This is the Asahi Linux fork of U-Boot, the universal bootloader, primarily targeting Apple Silicon Macs. The codebase is a full-featured bootloader with support for multiple architectures (ARM, RISC-V, x86, MIPS, PowerPC, etc.), a driver model (DM) for hardware abstraction, device tree support, SPL/TPL multi-stage boot, and a rich command-line interface. It includes bundled libraries for networking (lwIP), cryptography (mbedTLS), and compression (zstd, lzma). The Asahi-specific modifications add support for Apple's M1/M2 SoCs, including early boot initialization, memory mapping, and device tree bindings. The repository is actively maintained with recent commits and a responsive issue tracker.

RATING: 8.7/10 MAINT: active DRIFT: low
▸ 3 reusable components found
rokath/trice ★ 996 104 APPLICATION

Trice is an embedded logging and tracing toolchain consisting of a lightweight C instrumentation library for microcontrollers and a Go-based host CLI tool. The C library provides variadic macros that emit compact binary records (ID + values) instead of format strings, drastically reducing flash and bandwidth usage. The Go tool manages Trice IDs (insert, clean, bind), decodes incoming binary streams from targets over UART, RTT, TCP/UDP, or file, and displays formatted logs with timestamps, colors, and filtering. It supports multiple buffer strategies (stack, static, double, ring), framing protocols (COBS, TCOBS), optional XTEA encryption, and local logging on the target itself. The architecture is a classic host-target split: the target runs the C library, the host runs the Go CLI. The codebase is well-tested with a large matrix of CGO test configurations and CI pipelines for multiple STM32 example projects. It is actively maintained with frequent releases and a responsive issue tracker.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
RRZE-HPC/likwid ★ 1940 272 APPLICATION

Likwid is a comprehensive performance monitoring and benchmarking tool suite for HPC environments. It provides command-line tools (likwid-perfctr, likwid-pin, likwid-bench, likwid-powermeter, likwid-topology, etc.) and a C/Fortran/Lua library for reading hardware performance counters, managing CPU/GPU topology, controlling system features (turbo, prefetchers, RAPL power limits), and pinning threads. The architecture is modular: a core C library (liblikwid) handles low-level hardware access via MSR, PCI, MMIO, or a privileged daemon, while Lua scripts provide user-facing interfaces. External dependencies (Lua, hwloc, GOTCHA, cwisstable) are bundled. The codebase supports x86, ARM, POWER, and GPU (NVIDIA, AMD) architectures with per-architecture performance counter definitions. It is primarily an application tool, though its extensive hardware counter definitions and benchmark infrastructure also serve research purposes.

RATING: 8.3/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
below/HelloSilicon ★ 5008 330 APPLICATION

This repository is an educational companion to the book 'Programming with 64-Bit ARM Assembly Language', adapted for Apple Silicon (ARM64 macOS, iOS, watchOS, tvOS). It contains 16 chapters of progressively complex assembly examples, covering system calls, memory addressing, functions, floating-point, NEON, and optimization. The code demonstrates key differences between Linux and Darwin (Apple) ABIs, such as syscall numbers, addressing modes (ADRP/ADD vs LDR =symbol), and variadic function calling conventions. It includes reusable debug macros (printReg, printStr) for register inspection, file I/O macros, and a toupper function callable from C, Python, and Swift. The project also features an Xcode SwiftUI app that integrates assembly code across multiple Apple platforms. The repository is well-maintained and actively used as a reference for Apple Silicon assembly development.

RATING: 8.1/10 MAINT: active DRIFT: low
▸ 4 reusable components found
unicorn-engine/unicorn ★ 9407 1554 APPLICATION

Unicorn Engine is a lightweight, multi-architecture CPU emulation framework derived from QEMU. It provides a pure C API with bindings for Python, Go, Java, Rust, Ruby, .NET, Haskell, Pascal, Zig, and VB6. The engine supports ARM, ARM64, M68K, MIPS, PowerPC, RISC-V, S390X, SPARC, TriCore, and x86 (16/32/64-bit). It is used primarily for security research, reverse engineering, fuzzing, and dynamic analysis of binary code. The architecture is a library with a central C API that exposes memory mapping, register access, hooks (code, block, memory, interrupt, instruction, syscall, TLB), and context save/restore. The core emulation logic is based on QEMU's TCG (Tiny Code Generator) for dynamic binary translation, with a custom glib compatibility layer to eliminate external dependencies. The repository includes extensive regression tests, fuzz targets, and sample programs for each architecture and binding. While the engine is actively maintained and widely used, it carries technical debt from its QEMU fork (based on QEMU 5.0.1) and auto-generated binding constants that may drift from the C API.

RATING: 8.0/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
cpq/bare-metal-programming-guide ★ 4850 447 APPLICATION

This repository is a comprehensive bare-metal microcontroller programming guide, providing step-by-step examples from minimal firmware to a full embedded web server with a device dashboard. The code targets ARM Cortex-M and RISC-V microcontrollers (STM32, TI TM4C, RP2040, ESP32-C3, nRF52840, etc.) and uses only GCC, a datasheet, and the Mongoose networking library. The architecture is bare-metal, single-threaded with an event loop in the webserver step; it demonstrates direct register manipulation, interrupt handling, UART, SysTick, clock configuration, printf retargeting via newlib syscalls, CMSIS integration, and Ethernet with built-in TCP/IP (MIP). The repository also includes reusable project templates for blinky, CLI, and LittleFS filesystem. Despite being educational, the code is production-quality and follows embedded best practices such as non-blocking timers, hardware abstraction layers (hal.h), and modular startup code.

RATING: 7.9/10 MAINT: active DRIFT: medium
▸ 3 reusable components found
nxp-imx/uboot-imx ★ 209 214 APPLICATION

This is the U-Boot bootloader fork for NXP i.MX SoCs, providing hardware initialization, boot loading, and driver support for a vast range of ARM, RISC-V, and other embedded boards. It implements the U-Boot driver model, SPL/TPL boot stages, verified boot, and extensive command-line interface for embedded development and debugging. The codebase is a mature, production-grade firmware project with support for hundreds of SoCs and boards, particularly NXP i.MX, TI K3, Rockchip, and Renesas platforms. It features a modular driver model, device tree support, secure boot capabilities, comprehensive testing infrastructure, and image generation tools like binman. While the repository is well-maintained, it contains legacy code and significant duplication across board-specific files.

RATING: 7.9/10 MAINT: maintained DRIFT: low
▸ 3 reusable components found
hoochanlon/Free-NTFS-for-Mac ★ 2408 168 APPLICATION

Free-NTFS-for-Mac is a macOS desktop utility that provides read-write access to NTFS-formatted drives using ntfs-3g and MacFUSE. It is implemented as an Electron application with a main process (Node.js) and a renderer (Chromium), offering a graphical interface for device detection, mounting, unmounting, ejecting, and resetting NTFS volumes. The application also includes a system tray mode, automatic mount on device insertion, password management via macOS Keychain, dependency checking (Homebrew, MacFUSE, ntfs-3g, fswatch), and multi-language support (English, Japanese, Chinese, German). The codebase is modular, with separate modules for device detection (event-driven via fswatch with fallback polling), mount operations, sudo execution, caching, and batch command execution. It also provides a set of shell scripts (ninja tools) for building, packaging, and installing dependencies. While the application is functionally complete and actively maintained, it exhibits some technical debt such as duplicate implementations, hardcoded paths, and reliance on system tools that may change across macOS versions.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
github0null/eide ★ 1038 106 APPLICATION

EIDE (Embedded IDE) is a VS Code extension for embedded microcontroller development, supporting a wide range of architectures (8051, STM8, Cortex-M, RISC-V, MIPS) and toolchains (GCC, Arm Compiler, IAR, SDCC, COSMIC, LLVM). It provides project management (create, import from Keil/IAR/Eclipse), build system integration, flash programming (JLink, STLink, OpenOCD, pyOCD, probe-rs), and analysis tools (callgraph visualization, stack usage, memory map, CMSIS pack management). The extension includes a web-based configuration UI, a Model Context Protocol (MCP) server for headless tool access, and custom language support for embedded assembly/linker scripts. The architecture is a VS Code extension with TypeScript core, Vue.js webviews, and platform-specific .NET binaries for build/flash operations. While deeply functional and feature-rich, the codebase exhibits some monolithic files, vendored outdated dependencies (Bootstrap 4.3.1, Vue 2.6), and a high degree of coupling between project management and UI logic.

RATING: 7.8/10 MAINT: active DRIFT: medium
▸ 5 reusable components found
pbatard/uefi-ntfs ★ 1003 165 APPLICATION

UEFI:NTFS is a UEFI bootloader application that enables booting from NTFS or exFAT partitions on UEFI systems lacking native drivers for these filesystems. It is primarily designed for use with Rufus to create bootable USB drives with Windows installation media or Windows To Go. The bootloader loads a filesystem driver (NTFS or exFAT), mounts the target partition, and chain-loads the standard UEFI bootloader from that partition. The source code is clean, well-commented, and demonstrates careful handling of UEFI firmware quirks, such as driver conflicts and Secure Boot validation. The project compiles with either gnu-efi or EDK2, supports multiple architectures (x86, x64, ARM, ARM64, RISC-V, LoongArch), and includes Visual Studio and GCC build configurations with CI pipelines. While the code is not reusable outside of UEFI development, it serves as a high-quality reference for writing UEFI applications and chain-loaders.

RATING: 7.8/10 MAINT: active DRIFT: low
Azure/Enterprise-Scale ★ 1958 1066 APPLICATION

This repository is the Azure Enterprise-Scale (ALZ) reference implementation, providing infrastructure-as-code artifacts to deploy and govern multi-subscription Azure environments. It is not a runtime application but a deployment toolkit consisting of ARM templates, Bicep files, custom Azure Policy definitions/initiatives, custom role definitions, and PowerShell automation. The architecture follows the Cloud Adoption Framework's landing zone design, with a management group hierarchy, policy-driven governance, and modular networking topologies (hub-spoke, Virtual WAN). Key entry points include the main ARM deployment template (`eslzArm/eslzArm.json`), the portal accelerator (`eslzArm/eslz-portal.json`), and the Bicep-based policy compilation (`src/templates/policies.bicep`). Data flows are primarily declarative: policy definitions and assignments are deployed to management groups, which then enforce compliance on subscriptions and resources. External dependencies are entirely Azure-native: Azure Resource Manager, Azure Policy, Azure RBAC, and Azure networking services. The repository also includes a PowerShell module (`Alz.Tools`) for subscription alias creation, orphaned RBAC cleanup, and artifact conversion, plus a Pester-based test framework for policy validation.

RATING: 7.6/10 MAINT: active DRIFT: medium
▸ 4 reusable components found
AXERA-TECH/ax-samples ★ 303 65 APPLICATION

This repository is a collection of C++ sample programs for deploying deep learning models on AXERA AI SoCs (NPU chips). It provides ready-to-run inference examples for a wide range of computer vision tasks including object detection (YOLOv5/6/7/8/9/10/11/26, YOLOX, YOLO-World, PPYOLOE+, RT-DETR, SCRFD), instance segmentation, oriented object detection (OBB), pose estimation, depth estimation, semantic segmentation, stereo matching, and more. Each example is a standalone command-line executable that loads a pre-compiled .axmodel, runs inference via the AX_ENGINE API, post-processes the outputs, and saves a result image. The code is organized per target chip (ax650, ax637, ax620e, ax615) with near-identical copies of examples across platforms, differing only in system initialization and minor chip-specific logic. The architecture is not a library or framework but a set of reference implementations demonstrating the integration of AXERA's NPU SDK. The primary data flow is: load image → preprocess (letterbox resize, color conversion) → push to engine → run synchronous inference → decode model outputs (e.g., anchor-based proposals, DFL, NMS) → draw bounding boxes/keypoints/masks → save output. External dependencies include the AX_ENGINE runtime, OpenCV for image processing, and standard C++ libraries. The build system uses CMake with per-chip toolchain files and GitHub Actions CI for cross-compilation verification. While the code is functional and covers a broad model zoo, it exhibits significant duplication across chip directories and hardcoded configuration (thresholds, image sizes, class names). The monolithic detection.hpp (~3500 lines) bundles many model-specific post-processing functions, increasing maintenance burden. There are no automated tests, and manual memory management is prevalent. Despite these quality issues, the repository serves its purpose as a practical reference for developers integrating AXERA hardware, and it stays current with recent model releases (YOLOv13, YOLO26, Depth Anything V2).

RATING: 7.3/10 MAINT: active DRIFT: low
▸ 2 reusable components found
geerlingguy/raspberry-pi-pcie-devices ★ 1951 172 APPLICATION

This repository is a Jekyll-based static website that serves as a comprehensive database of PCI Express device compatibility with Raspberry Pi Compute Module 4 and Pi 5. It contains hundreds of markdown files documenting individual PCIe cards, carrier boards, and HATs, along with their functionality status, driver requirements, and community testing notes. The site is automatically built and deployed to GitHub Pages via GitHub Actions. While primarily a content site, it includes useful extras like a cross-compilation Docker environment for building custom Pi kernels, which is the most technically sophisticated component. The codebase is straightforward Jekyll with some custom plugins for thumbnail generation and YouTube embeds. The project is actively maintained with frequent additions of new hardware listings.

RATING: 7.1/10 MAINT: active DRIFT: low
▸ 1 reusable components found
slembcke/Tina ★ 299 12 APPLICATION

Tina is a header-only library providing lightweight user-space threading through coroutines and fibers, along with a fiber-based job system for task scheduling. The core library (tina.h) implements symmetric and asymmetric coroutine APIs with platform-specific assembly for context switching. Tina Jobs (tina_jobs.h) builds on this to create a job scheduler featuring work-stealing via queue chaining, memory pooling, and fiber-based job execution to avoid OS thread overhead. The repository includes examples (e.g., Mandelbrot renderer using Sokol graphics) and tests demonstrating usage, but the project has migrated to Codeberg due to philosophical opposition to AI training, indicating the GitHub repository is no longer actively maintained. While the Sokol dependencies in extras are third-party, the Tina core showcases strong craftsmanship in low-level concurrency primitives.

RATING: 7.1/10 MAINT: deprecated DRIFT: medium
▸ 2 reusable components found
$ loading more...
$ submit: