24 रिपॉजिटरी
Tools and practices for creating software for resource-constrained hardware.
Explore 24 awesome GitHub repositories matching software engineering & architecture · Embedded Systems Development. Refine with filters or upvote what's useful.
This project is a comprehensive, curated directory of high-quality libraries, tools, and educational resources for C and C++ development. It serves as an ecosystem discovery index, helping developers navigate the vast landscape of third-party components, frameworks, and technical documentation available for the language. The collection is distinguished by its focus on high-performance systems programming and technical mastery. It provides deep coverage of specialized domains including SIMD-accelerated data processing, compile-time template metaprogramming, and asynchronous event-driven archit
Curates development resources for creating optimized software on resource-constrained hardware where binary size and speed are paramount.
This project is a comprehensive library of fundamental computer science algorithms and data structures implemented in C. It provides a collection of modular, portable code blocks designed for educational purposes and integration into production software, focusing on procedural execution and direct hardware interaction. The library distinguishes itself through a focus on low-level systems programming, offering memory-efficient implementations of stacks, queues, linked lists, and trees. It includes specialized suites for cryptographic data protection, audio signal processing, and network commun
Develops portable C code optimized for reliable execution in embedded environments.
This project provides a framework for managing multi-agent systems, designed to automate complex software development, infrastructure, and business workflows. It functions as a multi-agent workflow orchestrator that routes tasks to domain-specific workers while maintaining state persistence and infrastructure automation. By leveraging large language models, the system decomposes high-level objectives into actionable plans, ensuring that complex operations are executed with consistency and reliability. The framework distinguishes itself through its hierarchical agent registry and policy-driven
Develops firmware and software for resource-constrained hardware with a focus on real-time performance and device interfacing.
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
Offers a comprehensive suite of tools for building, flashing, and debugging software on resource-constrained embedded hardware.
This project provides an open-source firmware platform and complete build environment for portable multi-tool hardware. It functions as an embedded operating system designed to manage radio, infrared, and physical interface components, enabling users to develop custom applications and system logic for specialized hardware devices. The firmware distinguishes itself through a modular architecture that organizes system functionality into isolated units, allowing for the development of custom user interfaces and logic. It includes a comprehensive collection of low-level drivers and applications s
Provides tools for creating custom software for resource-constrained portable hardware.
QEMU is a cross-platform system emulator and hardware virtualization platform that enables the execution of multiple isolated operating systems on a single host machine. It functions as a processor architecture emulator, translating machine instructions between different hardware platforms to allow software designed for one architecture to run on another. The project distinguishes itself through a modular target architecture that separates core emulation logic from specific hardware definitions, supporting a wide range of processor and peripheral configurations. It utilizes dynamic binary tra
Provides environments for testing and debugging firmware or software for specialized hardware platforms without needing the physical target device.
This project is a monolithic operating system kernel designed to serve as the foundational software layer for diverse computing architectures and embedded platforms. It manages core system services, including processor scheduling, memory allocation, and hardware resource distribution, to facilitate communication between user applications and physical hardware. The kernel utilizes a hardware abstraction layer and platform-specific device trees to ensure consistent operation across a wide variety of processors and specialized computing devices. It supports dynamic functionality through loadable
Optimized for embedded systems development by managing low-level drivers and resources for specialized hardware.
This project serves as an educational resource for learning and implementing low-level assembly language optimizations. It provides a structured guide for developers to master hardware-specific instructions and manual performance tuning, focusing on the translation of high-level code into efficient machine-level operations for resource-constrained environments. The materials emphasize techniques for maximizing computational throughput in multimedia processing. By covering instruction-level parallelism, register management, and data parallelism, the project enables the development of software
Develops resource-efficient software for hardware with limited processing power by utilizing manual assembly optimization techniques.
F Prime एक कंपोनेंट-आधारित फ्रेमवर्क है जिसे एम्बेडेड और स्पेसफ्लाइट सॉफ्टवेयर के विकास और परिनियोजन (deployment) के लिए डिज़ाइन किया गया है। यह एक मॉड्यूलर आर्किटेक्चर प्रदान करता है जो सॉफ्टवेयर लॉजिक को कम्युनिकेशन इंटरफेस से अलग करता है, जिससे डेवलपर्स को डोमेन-विशिष्ट मॉडलिंग भाषा के माध्यम से सिस्टम संरचनाओं को परिभाषित करने की अनुमति मिलती है। यह मॉडल-आधारित दृष्टिकोण स्वचालित कोड जनरेशन को सक्षम बनाता है, जो जटिल सिस्टम टोपोलॉजी में निरंतरता सुनिश्चित करता है और सॉफ्टवेयर मॉड्यूल के बीच सख्त इंटरफेस अनुबंधों को बनाए रखता है। यह फ्रेमवर्क अपने एकीकृत बिल्ड सिस्टम और ग्राउंड डेटा ऑपरेशंस सूट के माध्यम से खुद को अलग करता है। यह एम्बेडेड सॉफ्टवेयर के पूरे जीवनचक्र को स्वचालित करता है, क्रॉस-कंपाइलेशन और डिपेंडेंसी मैनेजमेंट से लेकर टेलीमेट्री और कमांड इंटरफेस के जनरेशन तक। ऑनबोर्ड फ्लाइट सॉफ्टवेयर और ग्राउंड-आधारित मॉनिटरिंग दोनों के लिए एक एकीकृत वातावरण प्रदान करके, यह विविध हार्डवेयर प्लेटफॉर्मों पर वितरित एम्बेडेड सिस्टम के निर्बाध एकीकरण, परीक्षण और कमांड-एंड-कंट्रोल की सुविधा प्रदान करता है। अपने मुख्य आर्किटेक्चर से परे, इस प्रोजेक्ट में सिस्टम ऑब्जर्वेबिलिटी के लिए व्यापक उपकरण शामिल हैं, जिनमें रीयल-टाइम टेलीमेट्री विज़ुअलाइज़ेशन, इवेंट लॉगिंग और डायग्नोस्टिक ट्रेसिंग शामिल हैं। यह बेयर-मेटल वातावरण से लेकर रीयल-टाइम ऑपरेटिंग सिस्टम तक, परिनियोजन परिदृश्यों की एक विस्तृत श्रृंखला का समर्थन करता है, और मेमोरी मैनेजमेंट, स्टेट-ड्रिवन व्यवहार मॉडलिंग, और एसिंक्रोनस टास्क निष्पादन के लिए तंत्र प्रदान करता है। यह प्रोजेक्ट एक C++ रिपॉजिटरी के रूप में बनाए रखा गया है, जिसमें व्यापक डॉक्यूमेंटेशन और क्रॉस-प्लेटफॉर्म विकास के लिए बिल्ड-सिस्टम सपोर्ट शामिल है।
Builds modular, reliable software for spaceflight and embedded systems using a component-based architecture.
Gobot is a robotics framework for the Go programming language designed for developing robotics, drones, and IoT applications. It provides a hardware abstraction layer with standardized drivers to interact with GPIO, I2C, SPI, and PWM interfaces across various single-board computers and microcontrollers. The framework functions as an IoT device orchestrator and BLE device manager, enabling the coordination of multiple sensors, actuators, and Bluetooth Low Energy peripherals. It includes specialized interfaces for drone control, allowing for the management of flight maneuvers and video streams
Enables the development of software for resource-constrained ARM boards and Raspberry Pi for electronics prototyping.
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
Provides a comprehensive toolset for writing, compiling, and flashing software for resource-constrained microcontroller hardware.
Kotlin-native is an ahead-of-time, cross-platform compiler and toolchain that transforms Kotlin source code into standalone native machine binaries. It functions as an LLVM native compiler, producing executable files that run directly on hardware without the requirement of a virtual machine. The project enables cross-platform native development across multiple operating systems and processor architectures, including iOS, Linux, and Windows. This allows for the creation of native Apple platform applications and software for embedded systems programming where direct memory management and minima
Enables software development for resource-constrained hardware environments requiring direct memory management.
RIOT is a real-time operating system designed for resource-constrained microcontrollers. It provides a kernel for managing hardware peripherals, memory, and multitasking on embedded devices, featuring a microcontroller hardware abstraction layer to unify hardware access across different chipsets. The system employs a preemptive tickless task scheduler with priority-based execution to maximize energy efficiency in battery-powered hardware. It also includes an embedded security framework consisting of cryptographic APIs and secure transport protocols to facilitate authenticated over-the-air fir
Provides a complete environment and kernel for developing software on resource-constrained microcontrollers.
OpenCat-Quadruped-Robot चार पैरों वाले रोबोट बनाने के लिए एक डेवलपमेंट फ्रेमवर्क और मोशन कंट्रोल API है। यह चौपाया रोबोट विकास के लिए एक व्यापक वातावरण प्रदान करता है, जिसमें लोकोमोशन गेट डिज़ाइन, इनवर्स काइनेमेटिक्स और एक लेयर्ड कंट्रोल आर्किटेक्चर शामिल है जो उच्च-स्तरीय बुद्धिमत्ता को निम्न-स्तरीय गति से अलग करता है। यह प्रोजेक्ट एक एम्बेडेड AI डिप्लॉयमेंट टूल के रूप में खुद को अलग करता है, जो उपयोगकर्ताओं को ऑब्जेक्ट डिटेक्शन और विज़ुअल टारगेट ट्रैकिंग जैसे कार्यों के लिए विज़न मॉड्यूल्स में मशीन लर्निंग मॉडल को प्रशिक्षित, क्वांटाइज़ और डिप्लॉय करने की अनुमति देता है। यह ऑफलाइन वॉयस कमांड प्रोसेसिंग, मानव गति की नकल और ग्राफिकल लॉजिक जनरेशन के लिए एक विज़ुअल ब्लॉक प्रोग्रामिंग इंटरफेस के माध्यम से जटिल मानव-रोबोट इंटरैक्शन का समर्थन करता है। यह सिस्टम IMU डेटा के माध्यम से रीयल-टाइम बैलेंस स्टेबिलाइज़ेशन, 3D कैमरों का उपयोग करके स्वायत्त नेविगेशन और ब्लूटूथ व WiFi के माध्यम से विभिन्न रिमोट कंट्रोल इंटरफेस सहित क्षमताओं की एक विस्तृत श्रृंखला को कवर करता है। इसमें रोबोटिक गेट सिमुलेशन, रीइन्फोर्समेंट लर्निंग पॉलिसी ट्रांसफर और बाहरी सॉफ्टवेयर एकीकरण के लिए एक समर्पित Python API के लिए टूल्स भी शामिल हैं। फर्मवेयर प्रबंधन को मुख्य बोर्ड और माइक्रोकंट्रोलर मॉड्यूल्स के लिए USB, ब्लूटूथ और ओवर-द-एयर अपडेट का समर्थन करने वाले डिप्लॉयमेंट टूल्स के एक सूट के माध्यम से संभाला जाता है।
Integrates and optimizes machine learning models on robotic hardware for real-time object detection and autonomous behavior.
ExecuTorch is a lightweight C++ runtime for deploying PyTorch models on mobile, embedded, and edge hardware. It provides an ahead-of-time compilation pipeline that exports, quantizes, and lowers model graphs into compact serialized programs, then executes them through a minimal runtime with hardware acceleration and on-device large language model inference capabilities. The project distinguishes itself through a hardware accelerator delegate system that partitions model subgraphs and offloads computation to specialized backends including NPUs, GPUs, and DSPs from Apple, Arm, Intel, MediaTek,
Integrates and runs machine learning models on Android, iOS, and microcontrollers with multi-language runtime bindings.
IREE is an MLIR-based compiler toolchain and runtime designed to translate machine learning models from various frameworks into optimized binaries for execution across diverse hardware targets. It provides a unified pipeline to ingest models from PyTorch, TensorFlow, JAX, and ONNX, lowering them into a common intermediate representation for deployment on CPUs, GPUs, and bare-metal embedded systems. The project distinguishes itself through a bytecode virtual machine and a hardware abstraction layer that decouple high-level model logic from specific hardware instruction sets. It supports sophis
Compiles and deploys machine learning models to resource-constrained environments including mobile and bare-metal systems.
This project is a hardware core and board support package that integrates STM32 microcontrollers into the Arduino development environment. It functions as an embedded systems development tool, bridging high-level programming workflows with ARM Cortex-M microcontroller architectures. The core provides the necessary configuration files and libraries to enable the compilation and deployment of firmware directly onto STM32 hardware. By mapping standard programming functions to specific microcontroller register operations, it ensures consistent behavior across different hardware platforms while ut
Facilitates firmware development for microcontrollers using familiar integrated development environments.
cargo-bloat is a binary size analyzer and compilation analysis tool for Rust. It identifies the largest functions and dependencies within compiled executables to locate space-consuming code and reduce the overall binary footprint. The tool functions as a build profile inspector and symbol size profiler, allowing users to analyze how different compiler options and build profiles affect the final binary size. It can export symbol data into human-readable tables or JSON format to monitor the footprint of specific crates. Capabilities include multi-target analysis across different platforms and
Helps reduce the memory footprint of Rust programs for resource-constrained embedded hardware.
Heapless is an embedded Rust data structure library that provides statically allocated, fixed-capacity collections for memory-constrained systems. It implements a zero-allocation runtime model where all collection elements are stored inline within their own value structure, completely removing the need for operating system interaction, global allocators, or runtime heap allocation. Capacity is specified at compile time through generic type parameters, ensuring every collection has a fixed upper bound known before execution. The library implements core language traits to provide standard coll
Targets software development for microcontrollers and hardware devices with strict memory limits where heap allocation is unavailable.
This library provides a collection of low-level abstractions for interacting with hardware peripherals on Raspberry Pi devices using the Rust programming language. It serves as a type-safe interface for controlling physical pins and managing communication with external electronic components and sensors. The project distinguishes itself through its use of compile-time abstractions that map high-level function calls directly to hardware instructions, ensuring minimal runtime overhead. It provides consistent access to hardware by wrapping kernel-level device interfaces and memory-mapped register
Builds low-level software for interacting with hardware peripherals like I2C, SPI, and UART.