Awesome-Embedded
A curated list of awesome embedded programming.
https://github.com/nhivp/Awesome-Embedded
Last synced: 12 days ago
JSON representation
-
Assembly
-
Automotive
-
ESP8266
- Sample Source: Trampoline is a static RTOS for small embedded systems. - nantes.fr/~bechenne/trampoline-labs/)
- Sample source: An integration an example AUTOSAR project which every part in AUTOSAR (OS, RTE, BSW, MCAL) are collected from different open source.
- automotive software(OSEK & AUTOSAR) - Because I am not powerful so I decided to develop tiny but smart part of automotive software based on open source, and create a general AUTOSAR & Automotive Software study environment.
- BlackFlag ECU - Automotive CAN bus security testing and analysis tool for ECU research, fuzzing, and reverse engineering of vehicle communication protocols.
-
-
Beaglebone
-
ESP8266
- BeagleBone Black I2C References
- Learning BeagleBone Python Programming
- A tutorial on bare-metal [OS
- bare metal c project for beaglebone, ti sitara am335x
- Bare Metal Applications on OSD335x using U-Boot
- Beaglebone - Getting started with JTAG and CCS
- BeagleBoardJTAG
- Simple implementation of an OS for the BeagleBoard C4 with ARMv7 A8 processor.
- Various projects that utilize low level hardware instructions to interface with leds, speaker output and joystick input.
- BBB-BareMetal - Works on the beaglebone black (bare metal)
- Bare Metal on the BeagleBone (Black and Green)
- bbb-asm-demo - Extremely tiny baremetal application for BeagleBone Black
- beaglebone_samples
- FreeRTOS for BeagleBone Black
- Learning BeagleBone Python Programming
- Running a Baremetal Beaglebone Black - a-baremetal-beaglebone-black-part-2/)
-
-
BOOKs
-
Bootloader
-
ESP8266
- Writing a boot loader in Assembly and C
- Writing a Bootloader Part 3
- Writing a Bootloader Part 1
- Bootloaders 101
- link1 - the-microcontroller-boot-process/), [link3](https://www.eevblog.com/forum/microcontrollers/copy-data-from-rom-to-ram-and-execute/)
- Writing a Bootloader Part 3
- A bootloader for ARM Cortex-M based microcontrollers
- OpenBLT - an open source and portable bootloader for microcontrollers.
- ARMv7M ELF loader
- Writing a Bootloader Part 1
- can-bootloader - The bootloader used to flash our CAN-connected boards
- Writing a boot loader in Assembly and C
-
-
Common
- Integer size in C on 32-bit and 64-bit system
- TeraTerm - TTL command reference
- Linker Command File Primer
- The C build process
- Building Bare-Metal ARM Systems with GNU
- ELF – Executable and Linkable Format
- Toolchains
- What is an application binary interface (ABI)?
- ARM Cortex M4 Blink Example (Linker Script)
- A Sample Linker Script
- Embedded Software _ Getting started
- Using the GNU Linker
- A Sample Linker Script
- TeraTerm Scripts
- Linker Command File Primer
- TeraTerm Scripts
- Linker Command File Primer
- ARM Cortex M4 Blink Example (Linker Script)
- Everything You Never Wanted To Know About Linker Script
- Modern Embedded Systems Programming Course - Learn from the basics to modern embedded programming practice.
-
Compiler
-
ESP8266
-
-
Embedded GUI Development
-
USB
- Embedded Wizard - Sophisticated GUI for Your Embedded Platform
- lvgl - Graphics library to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.
-
-
Embedded Software Skill
-
FAQ_Embedded
-
Interview
- Embedded Interview Questions
- Interview Questions Archive by Company
- coding-interview-university - A complete computer science study plan to become a software engineer.
- Coding Interview University - A complete computer science study plan to become a software engineer.
- EA-SKILL
-
Linux kernel and device driver development
-
ESP8266
- Writing device drivers in Linux
- YOLINUX Tutorials
- Linux driver programming
- Free training materials and conference presentations
- eBook: Linux Drivers
- OpenEmbedded
- Start linux kernel module development!
- Yocto Project - Create custom Linux-based systems regardless of the hardware architecture.
- Buildroot - Simple, efficient and easy-to-use tool to generate embedded Linux systems through cross-compilation.
- Linux inside - A little bit about a linux kernel
- Writing device drivers in Linux
- YOLINUX Tutorials
- Linux driver programming
- c-periphery - A C library for peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) in Linux.
- Linux driver practices
- Linux Kernel Exploitation - A bunch of links related to Linux kernel exploitation
- Linux Kernel Module Cheat
- Minimal Linux Live - a tiny educational Linux distribution
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- OpenEmbedded
-
-
Looking for more lists like this?
-
USB
- A curated list of project-based tutorials in C
- A curated list of awesome Raspberry Pi tools, projects, images and resources
- awesome-c - A curated list of awesome C frameworks, libraries and software.
- Curated list of project-based tutorials
- Curated list of awesome lists
- awesome-embedded-systems
- awesome-cheat-sheets - Awesome Cheat Sheets for Developer Utility, like Git, Vim, Tmux, Sublime Text, Markdown, Shell.
- awesome-embedded-rust - Curated list of resources for Embedded and Low-level development in the Rust programming languague.
- theEmbeddedNewTestament.github.io
- Curated List of Self-Driving Cars and Autonomous Vehicles Resources
-
-
Machine Learning & AI on MCU
-
USB
- CMSIS NN - A collection of efficient neural network kernels developed to maximize the performance and minimize the memory footprint of neural networks on Cortex-M processor cores.
- ARM Compute Library - Set of optimized functions for image processing, computer vision, and machine learning.
- nnom - A higher-level Neural Network library for microcontrollers.
- Embedded Learning Library (ELL) - Microsoft's library to deploy intelligent machine-learned models onto resource constrained platforms and small single-board computers.
- uTensor - AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow.
- EmbededAI - A library that provides elements of AI to C++ applications.
- kann - A lightweight C library for artificial neural networks.
- m2cgen - A CLI tool which allows to transpile trained classic ML models into a native code of various programming languages with zero dependencies including C.
- nn2 - Tiny zero-dependency neural network inference engine in pure C with hand-written SIMD kernels (AVX-512 / AVX2 / NEON). Runs the FaceX face recognition stack on Apple Silicon, ARM SBCs and ESP32-P4. Apache 2.0.
- edge-agents (ForestHub) - Open-source (AGPL-3.0) 30 MB AI agent runtime for edge devices. Offline by default; GPIO/UART/MQTT as first-class nodes; local SLMs alongside cloud LLMs. Runs on Raspberry Pi 5, Jetson Orin Nano, STM32MP25, ctrlX CORE.
- voicute - Lightweight keyword spotting and wake word detection engine for ESP32 with INT8 quantization (~74KB per keyword), multi-language support including Chinese, and cross-platform ONNX Runtime inference.
- nn4mp
- TiGrIS - Ahead-of-time compiler that tiles ONNX models to fit microcontrollers with fixed RAM and flash budgets, executed by a dependency-free C runtime.
-
-
Makefile
-
MCU programming
-
Bare-metal programming (Don't need MCU)
- Simplest bare metal program for ARM - emulation/))
- Bare metal programming guide - a detailed guide for beginners
- Real-Time C++ - companion bare-metal code to Real-Time C++ book.
- hypervisor - ARM64 Type-1 bare-metal hypervisor in no_std Rust, runs at EL2 on QEMU virt, boots Linux with FF-A v1.1 SPMC.
-
ESP8266
-
General
- McuOnEclipse - Everything about Eclipse, microcontrollers, software and tools.
-
MSP430
- MSP430-GCC
- CS4101: Introduction to Embedded Systems - The course is designed around labs, using TI MSP430 LaunchPad and Arduino Uno to discuss concepts such as basic I/O, timing and clocking, interupt handling, serial communication, embedded operating systems, synchronization, etc.
- MSP430 reference
- MSP430-GCC
-
MSP432
- Real-Time Bluetooth Networks - UTAustinX - Learn the design fundamentals of a real-time operating system (RTOS) and how to build a Bluetooth network in this hands-on project-based course.
-
STM32
- STM32 bootloader
- Open source flash program for STM32 using the ST serial bootloader
- stm32f4xx with Rust at the HAL - A series of tutorials for building STM32F4xx applications with Rust.
- Tests to program STM32 Nucleo in C with GCC ARM embedded toolchain and libopencm3
- A demo project of FreeRTOS running on a STM32F4 Discovery board.
- DFU Bootloader for STM32 chips
- Customizable Bootloader for STM32 microcontrollers.
- Lightweight USB device Stack for STM32 microcontrollers
- STM32 programming with Embedded GNU Compiler
- A tiny portable 3D graphics lib for micro controllers (Oled display)
- Getting started with the STM32F4-Discovery board using the EmBitz IDE
- libopencm3 and FreeRTOS projects using the STM32F103C8T6 MCU
- A template for builting STM23F0 ARM projects with GCC
- stm32-hid-bootloader - Driverless USB HID bootloader and flashing tool for STM32F10X devices
- STM32F103C8 Examples
- stm32f103 - Bare metal programming on a generic STM32F103c8 board
- stm32_samples
- stm32f4de example code
- stm32f4xx with Rust at the HAL - A series of tutorials for building STM32F4xx applications with Rust.
- stm32-rf-scanner - STM32 and nRF24L01+ based 2.4GHz RF scanner
- stm32-dc-dc - STM32 based DC-DC converter
- rustlink - small set of Rust tools to program STM32 devices
- stm32l1xx-template - A template for building firmware for the STM32L1xx.
- Standalone TCP/IP stack for STM32, bare metal or RTOS
- stm32-async-1wire - Non-blocking, register-level 1-Wire master for STM32 (DS18B20 temperature driver on top). Hardware-timed (TIM1+DMA, DMAMUX on G0), interrupt-free, RTOS-agnostic; header-only backends for STM32F1/F0/G0; hardware-validated on Blue Pill (F103) and STM32G031; strong-pull-up parasite powering; released v1.6.1.
- SD Card OVID Player - STM32F103 SD card frame-video player for SSD1306/SH1106 OLED, with FatFs file browsing and a Windows media converter.
-
STM32F7
-
STM8
- stm8-bare-min - Tiny peripheral library for STM8S
- stm8-bootloader - Serial bootloader for STM8S microcontrollers
- stm8-multi-tasker - STM8-Multi-Tasker - Preemptive/Cooperative Round Robin Scheduler for STM8
- Wolk STM8 stuff
- STM8S001J3_tiny_board - A tiny dev board for STM8S001J3 MCU designed in KiCad.
-
TM4C123
- EmbeddedSystems.Playground
- Macros in TivaWare
- Analog to Digital Conversion, Data Acquisition and Control
- Embedded Systems - Shape The World
- HowTo: Develop on the TI Tiva LaunchPad using Linux
- The complete tutorial for Stellaris LaunchPad development with GNU/Linux (I)
- Embedded Systems with TM4C123 @Valvano
- Create FreeRTOS Demo Project using the GCC Compiler
- Serial bootloader on TM4C12x Microcontroller
- Tivaware bootloader
- Diagnosing Common Development Problems and Tips & Info for TM4C Devices
- Drivers and examples - Drivers for internal peripherals and external modules for Tiva C, examples of FreeRTOS features under development/FreeRTOS
-
Categories
MCU programming
117
Raspberry
45
RTOS
41
Linux kernel and device driver development
38
Others
20
Common
20
Utilities
19
Beaglebone
16
OS
13
Machine Learning & AI on MCU
13
Bootloader
12
Tips & tricks
11
Looking for more lists like this?
10
WindowCE
8
BOOKs
6
Interview
5
Embedded Software Skill
5
Automotive
4
Peripheral
3
Makefile
3
FAQ_Embedded
2
Assembly
2
Embedded GUI Development
2
Compiler
1
Sub Categories
Keywords
embedded
14
microcontroller
10
iot
9
arm
8
operating-system
7
cortex-m
6
linux-kernel
6
stm32
6
c
5
arduino
5
linux
5
embedded-systems
4
rust
4
cpp
4
rtos
3
kernel
3
risc-v
3
tutorial
3
c-plus-plus
3
awesome
3
python
3
machine-learning
3
awesome-list
3
raspberry-pi
3
hardware-abstraction-layer
2
hal
2
cpp14
2
deep-learning
2
uefi
2
firmware
2
qemu
2
os
2
raspberry-pi-3
2
resources
2
armv8
2
mcu
2
rpi
2
algorithms
2
javascript
2
real-time
2
library
2
cpp11
2
webserver
2
esp32
2
wifi
2
framework
2
stm32hal
2
microkernel
1
nrf24l01plus
1
stm32cubemx
1