• Stars
    star
    725
  • Rank 62,504 (Top 2 %)
  • Language
  • License
    Creative Commons ...
  • Created almost 4 years ago
  • Updated 10 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

๐ŸŒ  List of software (HW interfaces, libs, protocols, etc) specifically suitable for resource-constrained Embedded Systems (low-memory and low-power) like 8-bit, 16-bit and 32-bit microcontrollers.

Awesome Embedded Resources for Developers Awesome

GitHub stars GitHub forks GitHub watchers

Awesome List of Sources and Libs for Embedded Systems Development

Implementation of Sources and Libs in this list are specifically suitable for resource-constrained Embedded Systems (low-memory and low-power) like 8-bit, 16-bit and 32-bit microcontrollers.

Warning This list does'nt cover any linux-related topics (like Raspberry Pi platform or any other SBCs (Single Board Computer)).

Permanent URL to this list: https://github.com/iDoka/awesome-embedded-software

Contents

Common

  • wiselib - Generic algorithms library for heterogeneous, distributed, embedded systems.
  • util.embedded - Useful support code for embedded development.
  • embxx - Embedded C++ Library.
  • embedded-libs - Libraries for embedded software (mainly for STM32).
  • ETLCPP - Embedded Template Library where the user can declare the size, or maximum size of any object upfront.
  • eFLL - Embedded Fuzzy Logic Library is a standard library for Embedded Systems.
  • Collection of miscellaneous portable C snippets - Collection of miscellaneous portable C snippets.
  • sc - Portable, stand-alone C libraries and data structures (C99).
  • MicroTBX - Open source Microcontroller ToolBoX consisting of software components commonly needed in embedded software applications. MicroTBX is written in the C programming language (C99) with MISRA compliance in mind.
  • umlibc - A bare-bones libc for memory constrained systems.
  • ยตClibc-ng - Embedded C Library.
  • HWlib - C++ OO micro-controller library for close-to-the-hardware programming.

Memory

Memory management

  • libmemory - Memory management library with implementations for malloc(), free(), and other useful memory management functions.
  • lwmem - Lightweight dynamic memory manager library for embedded systems with memory constraints. It implements malloc, calloc, realloc and free functions.
  • umm_malloc - Memory Manager For Small(ish) Microprocessors.

Buffers

  • EmbeddedProto - C++ Protocol Buffers implementation specifically suitable for ARM Cortex-M microcontrollers. It is small, reliable and easy to use.
  • protobuf-embedded-c - Protocol buffers generator for resource constrained embedded applications written in the C programming language.

Ring Buffer

  • LwRB - Lightweight generic ring buffer manager library.
  • RingBuffer - Simple Interrupt Safe Ring (Circular) Buffer Queuing Library for Embedded platforms.

FIFO

  • fifofast - A fast, generic fifo for MCUs.

Storage

Filesystems

  • lwext4 - An ext2/ext3/ext4 filesystem library for microcontrollers.
  • FatFS - FAT filesystem implementation.
  • LevelX - Provides Flash Wear Leveling for FileX and Stand Alone purposes.
  • ufat - Low-memory feature-complete VFAT implementation.
  • fat_io_lib - Small footprint, low dependency, C code implementation of a FAT16 & FAT32 driver.
  • SdFat - Arduino FAT16/FAT32 exFAT Library.
  • fat32 - Lighweight FAT32 file system written in C with no thirdparty dependencies. It requires a small port which provide functions for initializing, reading and writing to the MSD.
  • emfat - FAT32 emulation library for stm32f4.
  • OpenFAT - FAT filesystem implementation for embedded processors.
  • uC-FS - Compact, reliable, high-performance, and thread-safe embedded file system for microprocessors, microcontrollers, and DSPs. An optional journaling component provides fail-safe operation while maintaining FAT compatibility.
  • littlefs - Little fail-safe filesystem designed for microcontrollers.

Data Bases

  • FlashDB - Ultra-lightweight database that supports key-value and time series data.
  • PureDB - Portable and tiny set of libraries for creating and reading constant databases.

Flash Memory

  • EasyFlash - Lightweight embedded flash memory library.
  • FlashAlgo - Framework for building Arm Cortex-M "FLM" style flash programming algorithms.
  • FCB - Flash Circular Buffer provides an abstraction through which you can treat flash like a FIFO.

Protocols

  • nanoPB - Small code-size Protocol Buffers implementation in ANSI C. It is especially suitable for use in microcontrollers, but fits any memory restricted system.
  • interchange - Request/response mechanism for embedded development, using atomics.
  • xmodem - XMODEM Library for embedded, mobile, iot, and desktop systems.
  • microrl - Micro read line library for small and embedded devices with basic VT100 support.
  • TinyFrame - Simple library for building and parsing data frames for serial interfaces (like UART / RS232).

Radio Frequency Protocols

Network protocols

  • uIP - Very small implementation of the TCP/IP stack that is written by Adam Dunkels.
  • LwIP - Small independent implementation of the TCP/IP protocol suite that has been initially developed by Adam Dunkels. lwIP suitable for use in embedded systems with tens of kilobytes of free RAM and room for around 40 kilobytes of code ROM.
  • HttpClient - Http Client Library.
  • httpio - Stand-Alone Cross Platform request parser and response generator for the HTTP protocol.
  • PicoTCP - Small-footprint, modular TCP/IP stack designed for embedded systems and the Internet of Things.
  • RawTCP_Lib - C library for creating and using TCP/IP packets with raw network sockets.
  • LRNDIS - Ethernet over USB (rndis + lwip).
  • CycloneTCP - A dual IPv4/IPv6 stack dedicated to embedded applications. The stack is distributed as a full ANSI C and highly maintainable source code (examples not included in GitHub's sources).

Web Server

  • mongoose - Embedded Web Server and Embedded Networking Library. It implements event-driven non-blocking APIs for TCP, UDP, HTTP, WebSocket, MQTT.
  • libevhtp - Extremely-fast and secure embedded HTTP servers with ease.
  • libฮผhttpd - Very flexible, lightweight and fully asynchronous HTTP server library based on libev and http-parser.
  • sandbird - Tiny (800sloc) embeddable HTTP server written in C89.

MQTT

  • libemqtt 1 - Embedded C client library for the MQTT protocol.
  • libumqtt 2 - Lightweight and fully asynchronous MQTT client C library based on libev.
  • Paho MQTT - C client library for embedded systems.

Protocol Parsers

Regular Expressions Parsers

  • RegExp - Regular expressions library for embedded systems.

GSM

  • LwGSM - Library for SIMCOM GSM modules to communicate with AT commands and RTOS from host device.
  • GSM_Engine - Generic AT parser for AT command based modules.
  • TinyGSM - Small Arduino library for GSM modules, that just works.

GPS

  • LwGPS - Lightweight GPS NMEA parser for embedded systems.
  • minmea - Lightweight GPS NMEA 0183 parser library in pure C.

AT command parser

  • atat - Lib for AT-like custom commands processing.
  • cAT - Plain C library for parsing AT commands for use in host devices.
  • gzat - Portable AT command parsing library in C++ language.
  • ATParser - An mbed-os compatible AT command parser.
  • atcommander - Portable C++ library for sending AT commands and parsing their responses.
  • LwESP - Lightweight ESP AT commands parser library to communicate with ESP8266 or ESP32 Wi-Fi module using AT commands.

Various protocols

  • lwpkt - Lightweight packet protocol structure for multi-device communication focused on RS-485.
  • lwow - Lightweight onewire protocol library optimized for UART hardware on embedded systems.
  • panStamp-SWAP - Simple Wireless Abstract Protocol for any existing ISM radio.
  • panStamp-uSWAP - Micro SWAP stack for MCU's connected via UART.
  • MIN - Microcontroller Interconnect Network protocol version 2.0.
  • libCoAP - C implementation of a lightweight application-protocol for devices that are constrained their resources such as computing power, RF range, memory, bandwidth, or network packet sizes. This protocol, CoAP, is standardized by the IETF as RFC 7252.

Data processing

Math

  • liquid-fpm - Software-Defined Radio Fixed-Point Math Library for embedded signal processing.
  • FPM - C++ header-only fixed-point math library.
  • Eigen - C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms.

DSP and Filtering

  • liquid-dsp - Digital signal processing library for software-defined radios.
  • minfft - Small and fast Discrete Fourier Transform library.
  • iir1 - DSP IIR realtime filter library written in C++.
  • kalman-clib - Microcontroller targeted naive Kalman filter implementation in pure C.
  • libdspl - Cross-platform digital signal processing algorithm library, written in C language.
  • pocketfft - Heavily modified implementation of FFTPack.
  • KISS FFT - Mixed-radix Fast Fourier Transform based up on the principle, "Keep It Simple, Stupid".
  • CMSIS-DSP - Embedded compute library for Cortex-M and Cortex-A.
  • SigLib - Digital Signal Processing and Machine Learning Library (x86, Cortex-A and Cortex-M, RISC-V, DSPs from TI, ADI etc).
  • lsp-dsp-lib - DSP library for digital signal processing provides set of functions that perform SIMD-optimized computing on several hardware architectures. All functions currently operate on IEEE-754 single-precision floating-point numbers.

Compression

  • heatshrink - Data compression library for embedded/real-time systems.
  • shoco - C library to compress and decompress short strings. It is very fast and easy to use. The default compression model is optimized for english words, but you can generate your own compression model.
  • ECL - Embedded Compression Library is not only for embedded, it is mostly oriented for small data and has special optimized low-memory modes for restricted environments.

AI ML

Artificial Intelligence and Machine Learning

  • Cranium - Portable, header-only, feedforward artificial neural network library written in vanilla C99.
  • ฮผTensor - TinyML AI inference library.
  • Fido - Lightweight C++ machine learning library for embedded electronics and robotics.
  • nnom - Neural Network on Microcontroller (NNoM) is a high-level inference Neural Network library specifically for microcontrollers.
  • caffepresso - Optimized Library for Deep Learning on Embedded Accelerator-based platforms.
  • libonnx - Lightweight, portable pure C99 onnx inference engine for embedded devices with hardware acceleration support.
  • TinyMaix - A tiny inference Neural Network library specifically for microcontrollers (TinyML). Designed to follow the rule: Easy-to-Use > Portable > Speed > Space.

CV

Computer Vision

  • Embedded SOD - Embedded Computer Vision & Machine Learning Library (CPU Optimized & IoT Capable).
  • QR-Image-embedded - QR library fork for embedded systems.

Cryptography

General

  • trussed - Minimal, modular way to write cryptographic applications on microcontroller platforms (Rust).
  • wolfSSH - Lightweight SSHv2 client and server library written in ANSI C and targeted for embedded, RTOS, and resource-constrained environments - primarily because of its small size, speed, and feature set.
  • LibHydrogen - Lightweight, secure, easy-to-use crypto library suitable for constrained environments.
  • krypton - Embedded TLS/DTLS library, source and binary compatible OpenSSL subset.
  • wolfTPM - Highly portable TPM 2.0 library, designed for embedded use.
  • mbedTLS - Open source, portable, easy to use, readable and flexible TLS library, and reference implementation of the PSA Cryptography API.
  • ๐Ÿ”liblithium - Lightweight cryptography library that is portable by design. It requires only standard C99 and does not assume 8-bit addressability, making it suitable for use on some DSP architectures as well as mainstream architectures.
  • ๐Ÿ”trezor-crypto - Heavily optimized cryptography algorithms for embedded Devices.
  • poly1305-donna - Implementations of a fast Message-Authentication Code (8 bit, 16 bit, 32 bit and 64 bit multiplies versions).
  • arduinolibs - Arduino Cryptography Library.
  • tlse - Single C file TLS 1.2/1.3 implementation, using tomcrypt as crypto library.
  • LibTomCrypt - Fairly comprehensive, modular and portable cryptographic toolkit that provides developers with a vast array of well known published block ciphers, one-way hash functions, chaining modes, pseudo-random number generators, public key cryptography and a plethora of other routines.
  • Monocypher - Easy to use, easy to deploy, auditable crypto library written in portable C.
  • minicrypt - Library of crypto primitives for embedded systems.
  • tinycrypt - Library of cryptographic algorithms provides an implementation for constrained devices of a minimal set of standard cryptography primitives.
  • tiny-AES-c - Small portable AES128/192/256 in C.
  • ยตAES - Lightweight, highly flexible, portable and ANSI-C compatible implementation of the AES encryption and block cipher modes.
  • CycloneCRYPTO - A cryptographic toolkit designed for use in embedded systems. It provides a comprehensive set of cryptographic primitives (hash functions, stream and block ciphers, public key cryptography) that can be used to add security features to your embedded application.

Elliptic Curve Cryptography

  • salty - Ed25519 signatures with assembly optimizations for Cortex-M4 and Cortex-M33.
  • micro-ecc - ECDH and ECDSA for 8-bit, 32-bit, and 64-bit processors.
  • libuecc - Very small generic-purpose Elliptic Curve Cryptography library compatible with Ed25519.
  • c25519-and-ed25519 - Curve25519 and Ed25519 for low-memory systems (Curve25519 scalar multiplication uses less than half a kB of peak stack usage).

Random Number Generation

  • pcg-c-basic - Code provides a minimal implementation of one member of the PCG family of random number generators, which are fast, statistically excellent, and offer a number of useful features.
  • pcg-c - Code provides an implementation of the PCG family of random number generators, which are fast, statistically excellent, and offer a number of useful features.

OS

  • citrus - Bare metal ARMยฎ Cortexยฎ-A5 operating system.
  • vanilla - Bare metal ARMยฎ Cortexยฎ-M7 operating system.
  • ๐Ÿ”chaos - Bare metal multicore ARMยฎ Cortexยฎ-A operating system based on a microkernel architecture.
  • LK kernel - The Little Kernel Embedded Operating System is SMP-aware kernel designed for small systems ported to a variety of platforms and cpu architectures.
  • QuarkTS - OS for embedded applications that supports prioritized cooperative scheduling, time control, inter-task communications primitives, hierarchical state machines and CoRoutines.
  • micro-ROS - Micro-ROS puts ROS 2 onto microcontrollers.

RTOS

  • ๐Ÿ”FreeRTOSโ„ข - FreeRTOS.
  • Zephyr - New generation, scalable, optimized, secure RTOS for multiple hardware architectures.
  • Apache NuttX - Apache NuttX is a mature, real-time embedded operating system (RTOS).
  • scmRTOS - Tiny Real-Time Preemptive Operating System intended for use with Single-Chip Microcontrollers. scmRTOS is capable to run on tiny uCs with as small amount of RAM as 512 bytes. The RTOS is written on C++ and supports various platforms.
  • ChibiOS/RT - Compact and fast real-time operating system supporting multiple architectures designed for embedded applications on microcontrollers of 8-, 16-, and 32-bits.
  • Azure RTOS ThreadX - Advanced real-time operating system (RTOS) designed specifically for deeply embedded applications.
  • eCos - Real-time operating system intended for embedded applications (Closed source).
  • embox - Configurable RTOS designed for resource constrained and embedded systems. Embox main idea is using Linux software without Linux.
  • RIOT - Real-time multi-threading operating system that supports a range of devices that are typically found in the Internet of Things (IoT): 8-bit, 16-bit and 32-bit microcontrollers. RIOT is based on the following design principles: energy-efficiency, real-time capabilities, small memory footprint, modularity, and uniform API access, independent of the underlying hardware (this API offers partial POSIX compliance).
  • Arm Mbed OS - Platform operating system designed for the Internet of Things. It includes all the features you need to develop a connected product based on an Arm Cortex-M microcontroller, including security, connectivity, an RTOS and drivers for sensors and I/O devices.
  • RT-Thread - RT-Thread was born in 2006, it is an open source, neutral, and community-based real-time operating system (RTOS). RT-Thread has Standard version and Nano version. For resource-constrained microcontroller (MCU) systems, the NANO kernel version that requires only 3KB Flash and 1.2KB RAM memory resources can be tailored with easy-to-use tools; And for resource-rich IoT devices, RT-Thread can use the on-line software package management tool, together with system configuration tools, to achieve intuitive and rapid modular cutting, seamlessly import rich software packages, thus achieving complex functions like Android's graphical interface and touch sliding effects, smart voice interaction effects, and so on.
  • distortos - Object-oriented C++ RTOS for microcontrollers.
  • R3-OS - Experimental static (ฮผITRON-esque) RTOS for deeply embedded systems, testing the limit of Rust's const eval and generics (Rust).
  • Tock Embedded OS - Embedded operating system designed for running multiple concurrent, mutually distrustful applications on low-memory and low-power microcontrollers (Rust).
  • dandelion - Microkernel Real-Time Operating System in Rust.
  • MuditaOS - Mobile operating system based on FreeRTOS optimized for E Ink displays - developed for Mudita Pure minimalist phone.
  • ยตC/OS-II - Preemptive, highly portable, and scalable real-time kernels. Designed for ease of use on a huge number of CPU architectures.
  • ยตC/OS-III - Preemptive, highly portable, and scalable real-time kernel. Designed for ease of use on a huge number of CPU architectures.

Event based scheduler

  • uevloop - Fast and lightweight event loop for embedded platforms.
  • lwevt - Lightweight event management system for embedded systems.
  • async - Asynchronous framework in C for systems where low memory usage is important.
  • Protothreads - Provide linear code execution for event-driven systems implemented in C designed for severely memory constrained systems, such as small embedded systems or wireless sensor network nodes.
  • EventOS - Event based system designed for Arduino Framework.
  • vsf - Versaloon Software Framework - a tiny preemptive-capable event-driven incremental software framework for Embedded Systems.

User Interface

CLI

  • cli - CLI (Command Line Interface) example build in pure C. Designed for MCU, support block/non-block mode input.
  • terminal - Command Line Interface for microcontrollers. Flexible terminal settings allow you to integrate it with any microcontroller, without much effort.
  • SerialMenu - Arduino library to easily create menus on the serial console.
  • terminal-server - Terminal server for MCU.
  • microsh - Shell for Small Embedded Devices.
  • cmd-l - Command line handler for embedded devices.

Menu

  • ProMenu - Advanced Generic Application Menu Library. ProMenu Library is used for fast implementing advanced user menus. It supports nesting, numeric settings, text settings, boolean values and events. Library is implemented in C++ with build-in Arduino port, but it is easy to port to different architecture.
  • BBmenu - Simple portable CLI menu for misc tasks (it is based on text menus, easily defined in a file).

printf

  • lwprintf - Lightweight printf library optimized for embedded systems.
  • Embedded_Printf - Embedded version of the famous "printf( )" function. The idea is create an simple and efficient library to meet some common needs in embedded systems.
  • tinyprintf - Tiny printf and sprintf library for small embedded systems.
  • xprintf-fp - Printf for embedded system with floating point support.
  • xprintf-io - Compact string I/O library. It is ideal for tiny microcontrollers that has insufficient program memory for regular printf function. The recommended use is: writing formatted strings into LCD or UART and for debug/maintenance console.
  • xprintf - Complete fprintf() formatting implementation, suitable for embedded use.
  • tiny-printf - Tiny, fast, non-dependent and fully loaded printf implementation for embedded systems. Extensive test suite passing.
  • tiny-printf new - Enhanced and maintained fork of tiny-printf. Tiny, fast(ish), self-contained and fully loaded printf, sprinf etc.
  • mini-printf - Minimal printf() implementation for embedded projects.
  • nanoprintf - The smallest public printf implementation for its feature set.
  • fmt - Modern formatting library providing a fast and safe alternative to C stdio and C++ iostreams.

scanf

  • scanf - Portable implementation of scanf input functions in C.
  • ft_scanf - Simple scanf %s %c %d.

Logging

  • embedded-log - Small and beautiful embedded log library for mcu.
  • EasyLogger - Ultra-lightweight (ROM<1.6K, RAM<0.3k), high-performance C/C++ log library.
  • trice - Super fast and tiny embedded device C printf-like trace code (works also inside interrupts) and real-time PC logging (trace ID visualization).
  • embedded-diagnostic-logger - Lightweight logger framework for small microcontroller based projects. Multilevel log and token based string transfer.
  • spdlog - Very fast, header-only/compiled, C++ logging library.
  • elog - Log system is thinked for embedded systems with mininmal resource utilization. The log system is designed to minimize memory compsumition in flash or RAM, enable an eficient in-ram loggin buffer with very efficient storage.

GUI

  • lvgl - Powerful and easy-to-use embedded GUI with many widgets, advanced visual effects (opacity, antialiasing, animations) and low memory requirements (16K RAM, 64K Flash).
  • EasyGUI - EasyGUI for embedded systems (highly optimized for STM32).
  • TouchGFX - User-friendly graphical C++ tool integrated as a free tool in the STM32 ecosystem.
  • eGUI - An eGUI embedded graphic library.
  • Embedded-graphics - 2D graphics library that is focused on memory constrained embedded devices.
  • ESLowGraphics - Low level software graphics library by ErrorSoft (ESLGL).
  • ftk - GUI library for embedded system.
  • u8glib - Universal Graphics Library for 8 Bit Embedded Systems.
  • ๐Ÿ”u8g2 - U8glib library for monochrome displays, version 2.
  • SGFX - Lightweight embedded library for displays and touchscreens providing everything required to build a fully featured embedded GUI.
  • GUIX - Provides a complete, embedded graphical user interface (GUI) library and design environment, facilitating the creation and maintenance of all graphical elements needed by your device.
  • GUILib - GUI library for embedded systems.
  • HMI_Library - Human Machine Interface suitable for embedded system.
  • AFGUI - Embedded GUI Library.
  • MakiseGUI - Graphics and GUI library for embed systems.
  • emGUI - Simple C UI Library for embedded platforms.
  • micromenu-v2 - Tiny text-orientated menu library in C for embedded use.
  • HAGL - Lightweight Hardware Agnostic Graphics Library for embedded devices. It supports basic geometric primitives, bitmaps, blitting, fixed width fonts. Library tries to stay lightweight but targets reasonably powerful microchips such as ESP32. There is no dynamic allocation.

GUI editors

  • lv_gui_designer - Drag-and-drop, simple GUI designer built with LittlevGL.
  • walv - Online, WYSIWYG GUI designer for LittlevGL. Cross-platform supported(Even Android and IOS).

Font utils

  • bitmap-OSD-font - A 'C' bitmap font for on screen display.
  • ttf2mesh - Library for TrueType font tessellation. Allows to convert font glyphs to mesh objects without rasterization.
  • sfam_generator - Simple scripts for generating bit fonts for STM32, AVR, Arduino or other MCU.
  • mcufont - A font rendering library for microcontrollers.

Fonts and Icons

  • picon - Pico-icon set with Hackable Ligature (Designed on a 8-grid: to be readable at 8px 16px 24px 32px 48px).

Picture manupulation tools

  • lcd-image-converter - Tool to create bitmaps and fonts for embedded applications; allows you to create bitmaps and fonts, and transform them to "C" source format for embedded applications.

Hardware

IO

USB

  • tinyusb - Cross-platform USB stack for embedded system.
  • libusb_stm32 - Lightweight USB device Stack for STM32 microcontrollers.
  • CherryUSB - Tiny, beautiful and portable USB host and device stack for embedded system with USB.

Flash

  • SFUD - Serial Flash Universal Driver (using JEDEC's SFDP standard serial (SPI) flash universal driver library).

CAN bus

  • libcanard - Compact implementation of the UAVCAN/CAN protocol in C for high-integrity real-time embedded systems.
  • Canbus-Message - CAN message assembly and disassembly library for teensy & stm32.
  • CanBoot - Can Bootloader for MCUs (Currently lpc176x, stm32 and rp2040 MCUs are supported).

Others

Thread management

Bootloaders

  • mcuboot - Secure boot for 32-bit Microcontrollers.
  • OpenBLT - Open source bootloader for STM32, XMC, HCS12 and other microcontroller targets. It supports communication interfaces such as: RS232, CAN, USB, TCP/IP and it ships with the easy-to-use MicroBoot PC tool for initiating and monitoring the firmware update. Performing firmware updates directly from an SD-card is also supported.
  • TinyUF2 - Bootloader based on TinyUSB for embedded devices such as ESP32, STM32 and iMX RT10xx.
  • wolfBoot - Portable, OS-agnostic, secure bootloader for microcontrollers, supporting firmware authentication and firmware update mechanisms.

Firmware updates

  • UF2 - USB Flashing Format specification for flashing microcontrollers over MSC (Mass Storage Class; aka removable flash drive).
  • SWupdate - Software Update for Embedded Linux Devices to update system in field. SWUpdate supports local and OTA updates, multiple update strategies and it is designed with security in mind.

Touch Screen

  • tslib - Touchscreen access library.

Time Management Libs

  • TimeLib - Time management library for embedded devices.
  • ฮผtz - Time zone library for tiny embedded systems.

Compilers

  • SDCC - Small Device C Compiler (that targets the Intel MCS51 based microprocessors (8031, 8032, 8051, 8052, etc.), Maxim (formerly Dallas) DS80C390 variants, Freescale (formerly Motorola) HC08 based (hc08, s08), Zilog Z80 based MCUs (Z80, Z180, SM83, Rabbit 2000, 2000A, 3000A, TLCS-90), Padauk (pdk14, pdk15) and STMicroelectronics STM8).
  • tcc - Tiny C Compiler (~ 100KB for x86 TCC executable, including C preprocessor, C compiler, assembler and linker).
  • lcc - Retargetable ANSI C Compiler (fork for ULP in ESP32).
  • pcc - Portable C Compiler (mirror).
  • TinyGo - Go compiler for small things: Microcontrollers, WebAssembly (WASM/WASI), and command-line tools (Based on LLVM).
  • chibicc - Yet another small C compiler that implements most C11 features.
  • rvcc - Bootstrapped C compiler for 32-bit RISC-V and ARM ISAs (generates executable Linux ELF binaries for RV32IM and ARMv7).

Uncategorized

  • Apache NuttX Apps - Collection of tools, shells, network utilities, libraries, interpreters and can be used with the NuttX RTOS.
  • modm - Barebone embedded C++20 library generator for AVR, SAM and ARM Cortex-M Microcontrollers (supported 3534 devices).
  • cembed - Small utility for embedding files in a C header.

Contributing

Footnotes

Please follow this root-repo for lastest updates.

More Repositories

1

awesome-canbus

๐Ÿš› Awesome CAN bus tools, hardware and resources for Cyber Security Researchers, Reverse Engineers, and Automotive Electronics Enthusiasts.
1,990
star
2

awesome-automotive-can-id

๐Ÿšœ Collect of CAN IDs and its payloads for various car brands/models in one place. Might be useful for Cyber Security Researchers, Reverse Engineers, and Automotive Electronics Enthusiasts.
518
star
3

awesome-linbus

๐Ÿš› An awesome LIN bus tools, hardware and resources. It helps a reverse engineering LIN bus devices with lightly specializing in automotive embedded controller software and communication understanding.
143
star
4

awesome-fpga-boards

๐Ÿง Second life for FPGA boards which can be repurposed to DYI/Hobby projects ...............................................................................................
86
star
5

eda-scripts

Collect of various scripts for helping work with EDA-tools (ASIC, FPGA, etc)
Shell
26
star
6

mastering-fpgasic-book

๐Ÿ“– Mastering FPGASIC Book
18
star
7

asic-pinout-drawer

Simple pin assignment generator for IC case
PHP
15
star
8

GOST-28147-89

Verilog HDL implementation of the GOST 28147-89 โ€” a Soviet and Russian government standard symmetric key block cipher
Verilog
14
star
9

raspberrypi-recipes

Collection of practice recipes for RPi
12
star
10

hdl-secded-producer

MATLAB/Octave generator of Hamming ECC coding. Output format is Verilog HDL.
MATLAB
11
star
11

GOST-R34.12-2015

Verilog HDL implementation of the GOST R34.12-2015 โ€” a fresh Russian government standard symmetric key block cipher.
Verilog
9
star
12

GNSS-verilog-signal-simulator

GNSS Signal Generator writen on Verilog HDL for SDR platform (currently BladeRF)
SystemVerilog
8
star
13

dotfiles

.files from my homebrewed CentOS 7 | Ubuntu 18.04
Shell
7
star
14

awesome-nRF5

nRF5xxxx family
5
star
15

awesome-stm8

STM8 awesome list
4
star
16

iDoka.github.io

iDoka's web page on Github
4
star
17

hdl-stuff

HDL things for FPGA and ASIC
4
star
18

xiaomi-m365

Shell
3
star
19

verilog.sublime-package

Verilog/SV syntax for SublimeText
3
star
20

volvo-p3-knowledge-base

My knowledge base for Volvo Platform 3 models (XC60, XC70, V70, S60, V60, S80)
3
star
21

digikey-cool-stuff

Collection of scripts related to DigiKey
PHP
3
star
22

vivado.sublime-package

SublimeText (highlighting) plugin for working with Xilinx Vivado files (tcl, xdc, etc)
2
star
23

awesome-nRF5x

nRF51|nRF52 useful resources
2
star
24

Dell-Latitude-E7470

Linux and Dell Latitude E7470 story and fixed issues
2
star
25

iDoka

Config files for my GitHub profile
2
star
26

script-dope

Collect of my scripts
2
star
27

HDL-Coding-Style-Standards

Collection of Coding Style Standards for Verilog and VHDL
2
star
28

russian-semiconductor-companies

List of Semiconductor companies in Russia
2
star
29

statistics-acquisition-module

Statistics Acquisition Module on Verilog
1
star
30

technical-writing

Technical writing related matters
Shell
1
star
31

oshw-stuff

Some OSHW matters
1
star