Awesome-Embedded

A curated list of awesome embedded programming.

GitHub

6k stars
155 watching
911 forks
last commit: 3 months ago
Linked from 4 awesome lists

aiautosarawesomebeaglebonebootloaderembeddedembedded-aiembedded-guifreertoslinux-programmingmachine-learningmicrocontrollermsp430operating-systemsraspberry-pirtosstm32tiva-c-seriestm4c123

Awesome-Embedded / Interview

Embedded Interview Questions
Interview Questions Archive by Company
coding-interview-university 47 almost 4 years ago A complete computer science study plan to become a software engineer

Awesome-Embedded / Embedded Software Skill

16 Essential Skills for Embedded Engineer
How to be low-level programmer 10,172 19 days ago
Programmer Competency Matrix

Awesome-Embedded / Common

Integer size in C on 32-bit and 64-bit system
TeraTerm - TTL command reference
TeraTerm Scripts
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
Linking and Loading
Embedded Software _ Getting started
How to convert from an armlink scatter file to a GNU ld linker script
Using the GNU Linker

Awesome-Embedded / MCU programming / Bare-metal programming (Don't need MCU)

Simplest bare metal program for ARM ( )
Bare metal programming guide 3,148 about 1 month ago a detailed guide for beginners
Real-Time C++ 575 14 days ago companion bare-metal code to Real-Time C++ book

Awesome-Embedded / MCU programming / 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-template A template for MSP430 firmware
MSP430 reference

Awesome-Embedded / MCU programming / TM4C123

EmbeddedSystems.Playground 33 over 3 years ago
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
Linux command line build system to generate binaries for TM4C123 (ARM Cortex M4) 19 about 5 years ago
The complete tutorial for Stellaris LaunchPad development with GNU/Linux (I)
Getting Started with the TI Stellaris LaunchPad on Linux
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
FreeRTOS-GCC-tm4c123glx A port of FreeRTOS to the Texas Instruments Tiva TM4C123GLX Launchpad
Stellaris_TM4C123G_GCC_Template Texas Instruments template project for the TM4C123 series using GNU toolchain
tm4c-gcc 7 over 9 years ago TM4C123 GCC project template
tivaapps 15 over 10 years ago Example hello-world apps for Texas Instruments TI-RTOS for Tiva C using a Linux host
Drivers and examples 35 8 months ago Drivers for internal peripherals and external modules for Tiva C, examples of FreeRTOS features under development/FreeRTOS

Awesome-Embedded / MCU programming / MSP432

Real-Time Bluetooth Networks - UTAustinX 25 over 7 years ago 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

Awesome-Embedded / MCU programming / STM32

STM32 bootloader
Tests to program STM32 Nucleo in C with GCC ARM embedded toolchain and libopencm3 31 about 6 years ago
A demo project of FreeRTOS running on a STM32F4 Discovery board. 151 over 6 years ago
DFU Bootloader for STM32 chips 331 8 months ago
Customizable Bootloader for STM32 microcontrollers. 888 almost 2 years ago
Lightweight USB device Stack for STM32 microcontrollers 711 4 months ago
STM32 programming with Embedded GNU Compiler 91 almost 5 years ago
A tiny portable 3D graphics lib for micro controllers (Oled display) 147 almost 6 years ago
Getting started with the STM32F4-Discovery board using the EmBitz IDE 1 about 7 years ago
libopencm3 and FreeRTOS projects using the STM32F103C8T6 MCU 321 11 months ago
A template for builting STM23F0 ARM projects with GCC 122 about 2 years ago
Open source flash program for STM32 using the ST serial bootloader
stm32-hid-bootloader 161 about 3 years ago Driverless USB HID bootloader and flashing tool for STM32F10X devices
stm32l1xx-template A template for building firmware for the STM32L1xx
STM32F103C8 Examples 828 almost 6 years ago
stm32f103 99 10 months ago Bare metal programming on a generic STM32F103c8 board
stm32_samples 99 about 2 years ago
stm32f4de example code 66 over 8 years ago
stm32f4xx with Rust at the HAL A series of tutorials for building STM32F4xx applications with Rust
stm32-rf-scanner 13 9 months ago STM32 and nRF24L01+ based 2.4GHz RF scanner
stm32-dc-dc 19 9 months ago STM32 based DC-DC converter
rustlink 2 over 1 year ago small set of Rust tools to program STM32 devices

Awesome-Embedded / MCU programming / STM32F7

STM32F7 Series
STM32 eLinux
STM32F7 os.mbed

Awesome-Embedded / MCU programming / STM8

stm8-bare-min 119 almost 2 years ago Tiny peripheral library for STM8S
stm8-bootloader 93 over 5 years ago Serial bootloader for STM8S microcontrollers
stm8-multi-tasker 9 over 6 years ago STM8-Multi-Tasker - Preemptive/Cooperative Round Robin Scheduler for STM8
Wolk STM8 stuff 33 over 9 years ago
STM8S001J3_tiny_board 4 almost 4 years ago A tiny dev board for STM8S001J3 MCU designed in KiCad

Awesome-Embedded / MCU programming / ESP8266

An open source bootloader for the ESP8266 301 about 5 years ago
An esp8266 rom creation tool 60 about 5 years ago
Wi-FI ESP8266 learning journey 694 over 3 years ago
Wi-FI ESP32 learning journey 452 over 2 years ago
Sming - ESP8266/ESP32 IoT Framework 1,474 10 days ago

Awesome-Embedded / Raspberry

Raspberry Pi Bare Metal 1 over 8 years ago &
ChibiOS/RT on the Raspberry Pi
Raspberry Pi ARM based bare metal examples 2,697 about 1 year ago
Bare metal Raspberry Pi 3 tutorials 2,717 4 months ago
Open Projects: Raspberry, Beaglebone BSP
A Real-Time Operating System on the Raspberry Pi
A port of FreeRTOS to the raspberry pi 478 almost 7 years ago
FreeRTOS Sucessfully Ported
Exploring AArch64 assembler - Raspberry
A bootloader for the Raspberry Pi using the ethernet device 11 over 9 years ago
Bare Metal Raspberry Pi
Bare Metal Programming in C
Baking Pi – Operating Systems Development
Search for 'Raspberry' topic on Github
elinux: Raspberry Pi Programming or
Stanford CS104e - An Experimental Course on Operating Systems
Computer Systems
Build a Debian-based ARM64 system for Raspberry Pi 3 94 about 5 years ago
Learning operating system development using Linux kernel and Raspberry Pi 13,149 6 months ago
A port of FreeRTOS to the raspberry pi 2B. With USB+Ethernet+TCP/IP. 141 over 7 years ago
64-bit Tiano Core UEFI for the Raspberry Pi 3 744 over 4 years ago
CXCORE-RaspberryPi3-ubuntu-18.04-aarch64
Sample source: Baremetal source code for Raspberry 301 over 5 years ago
Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3 21 over 6 years ago
Sample source: FreeRTOS v9.0.0 port for Raspberry Pi 1 8 about 6 years ago
Sample source: A bare-metal experiments with the RaspberryPi 8 over 4 years ago
「BareMetalで遊ぶ Raspberry Pi」のプログラムです。 45 about 6 years ago
UEFI for RaspberryPi2 and RaspberryPi3 based on Linaro EDK2 97 almost 5 years ago
ARM-episodes 78 over 6 years ago &
ARM shellcode and exploit development - BSidesMunich 2018 106 over 6 years ago
64 bit Bare Metal Programming on RPI-3
Raspberry Pi 3 Bare Metal
Assembly code for Raspberry Pi 3 over 6 years ago
A public Baremetal Raspberry Pi code 301 over 5 years ago
Raspberry-Pi Bare Metal Tutorial 586 almost 4 years ago
uCOS-II on Raspberry Pi 28 over 11 years ago
Porting uCOSII to the raspberry pi A+/B+/2B 2 about 9 years ago
Bare-metal examples 30 over 9 years ago
Bare-metal lab 22 over 9 years ago
Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux {book}
Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux {website}

Awesome-Embedded / Beaglebone

BeagleBone Black I2C References
Learning BeagleBone Python Programming
Simple implementation of an OS for the BeagleBoard C4 with ARMv7 A8 processor. 1 over 6 years ago
Various projects that utilize low level hardware instructions to interface with leds, speaker output and joystick input. 2 about 2 years ago
Windows Embedded Compact BSP for TI's Beaglebone
BBB-BareMetal 120 5 months ago Works on the beaglebone black (bare metal)
Running a Baremetal Beaglebone Black &
Bare Metal on the BeagleBone (Black and Green) & +
A tutorial on bare-metal [OS] development on the Texas Instruments BeagleBoard.
bare metal c project for beaglebone, ti sitara am335x 6 about 9 years ago
Bare Metal Applications on OSD335x using U-Boot
bbb-asm-demo 18 over 3 years ago Extremely tiny baremetal application for BeagleBone Black
Beaglebone - Getting started with JTAG and CCS
BeagleBoardJTAG
beaglebone_samples 9 about 8 years ago
FreeRTOS for BeagleBone Black 11 over 10 years ago

Awesome-Embedded / Linux kernel and device driver development

Linux inside 29,861 3 months ago A little bit about a linux kernel
Writing device drivers in Linux
YOLINUX Tutorials
Linux driver programming
Free training materials and conference presentations
eBook: Linux Drivers or
c-periphery 730 5 months ago A C library for peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) in Linux
OpenEmbedded ,
Linux driver practices 79 8 months ago
Linux Kernel Exploitation 5,561 26 days ago A bunch of links related to Linux kernel exploitation
Linux Kernel Module Cheat 4,157 11 months ago
Start linux kernel module development!
Minimal Linux Live 1,521 7 months ago a tiny educational Linux distribution
low-level programming university #linux-kernel-and-device-driver 10,172 19 days ago
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

Awesome-Embedded / Assembly

GCC-Inline-Assembly-HOWTO
Assembly programming

Awesome-Embedded / RTOS

List of open source real-time operating systems
ROS
FreeRTOS
FreeRTOS - Explaination
FreeRTOS API Reference Documentation
How to Write a Small RTOS
RTOS From Scrach
mini-arm-os & qemu with a stm32 178 about 7 years ago or - Build a minimal multi-tasking OS kernel for ARM Cortex-M series from scratch
Writing a simple operating system from scratch
Free real-time operating system (RTOS) designed for deeply embedded applications 169 5 months ago
MPSoC FreeRTOS Development
Atomthreads: Open Source RTOS
High performance motor control 2,908 4 months ago
MINIX3: Open source RTOS
30 Days make OS 5,892 6 months ago --> @
OSDEV.org Community: ,
Real-time System Group
object-oriented C++ RTOS for microcontrollers 433 about 1 month ago
RT-Thread is an open source IoT operating system from China. 10,370 5 days ago
How to create an OS from scratch 27,025 2 months ago
Sample Source: TetrOS is a small feature rich Tetris clone which is written in Assembly. 766 almost 8 years ago
Sample Source: RTOS for microcontrollers 199 almost 4 years ago
Sample Source: A Powerful embedded RTOS for ARM Cortex M microcontrollers 115 4 months ago
Sample Source: An embedded operating system for ARM Cortex-M based microcontrollers 47 over 4 years ago
Sample Source: rnk is a RTOS targeting ARM architecture. 24 16 days ago
Sample Source: RTOS-From-Scratch 18 about 7 years ago
Sample Source: Embeded OS for PIC32MX270F256B 5 about 6 years ago
How I ended up writing a new real-time kernel
Sample Source: TNeo - a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs 232 over 2 years ago
yaos is an embedded operating system for Internet of Things(IoT) devices, specifically for a single-core processor without MMU virtualization. 47 over 4 years ago
RT-Thread for Raspberry Pi 2B
tock 5,375 4 days ago A secure embedded operating system for Cortex-M based microcontrollers
AliOS-Things 4,582 over 1 year ago AliOS Things released by Alibaba is an open-source implementation of operating system (OS) for Internet of Things (IoT)
CoRTOS & - An open source minimalist RTOS
µOS++ Reference
TNKernel a compact and very fast real-time kernel for the embedded 32/16/8 bits microprocessors
Femto OS a very concise portable real time - preemptive operating system (RTOS) for embedded microcontrollers with minimal ram and flash, say 2KB .. 16KB flash and 128 .. 1024 bytes ram

Awesome-Embedded / Automotive

Sample Source: Trampoline is a static RTOS for small embedded systems. 614 4 months ago &
Sample source: An integration an example AUTOSAR project which every part in AUTOSAR (OS, RTE, BSW, MCAL) are collected from different open source. 350 over 6 years ago
automotive software(OSEK & AUTOSAR) 977 almost 2 years ago 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

Awesome-Embedded / OS

ucLinux : The Embedded Linux/Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU)
Tizen
Bootstrap yourself to write an OS from scratch. A book for self-learner. 11,887 6 months ago
Kernel 101 – Let’s write a Kernel
The little book about OS development
TetrOS 766 almost 8 years ago Tetris that fits into the boot sector
Writing a Simple Operating System from Scratch
JamesM's kernel development tutorials
Bare Bones a simple kernel for 32-bit x86 and boot it
Operating System Development Series
7 Steps to Writing a Simple Cooperative Scheduler
A simple OS kernel for research, teaching, and fun 781 6 months ago
Operating Systems C Term 2018 20 about 6 years ago

Awesome-Embedded / WindowCE

GuruCE Blog
Windows CE Base Team Blog
DevWinCE blog
Windows Embedded Compact BSP for Raspberry Pi
Windows Embedded Board Support Package for BeagleBone

Awesome-Embedded / Compiler

ARM Compiler - armasm User Guide

Awesome-Embedded / Bootloader

Writing a boot loader in Assembly and C
Writing a Bootloader Part 3
A bootloader for ARM Cortex-M based microcontrollers 21 almost 5 years ago
OpenBLT 654 18 days ago an open source and portable bootloader for microcontrollers
ARMv7M ELF loader 95 12 months ago
Writing a Bootloader Part 1
can-bootloader 145 over 1 year ago The bootloader used to flash our CAN-connected boards
Bootloaders 101
link1 Understand boot process: , ,

Awesome-Embedded / Makefile

Managing projects with GNU Make
GCC and Make

Awesome-Embedded / Peripheral / Memory Protection Unit

Building Hardware Components for Memory Protection of Applications on a Tiny Processor
KeyStone Architecture: Memory Protection Unit (MPU)

Awesome-Embedded / Peripheral / USB

tinyusb 4,925 10 days ago An open source USB stack for a variety of Embedded Systems

Awesome-Embedded / Others

A practical approach to Kalman filter and how to implement it
Embedded System programming : Diving into Syllabus for investigation
ELC 2018 Presentations
ARM Edition : Sparky ARM Edition is a Sparky version created for a single board mini computer RaspberryPi
The gem5 Simulator is a well-known sophisticated simulator used for computer system research at both architecture and micro-architecture levels. Main page is
LineageOS Android Distribution
The NoCAN platform
Realtime OS on Embedded Systems
These projects were produced in the five weeks of ECE 4760 each year.
Advanced fault backtrace library for ARM Cortex-M series MCU 1,640 about 2 months ago
mcu-starter-projects 307 10 months ago Simple starter projects for bare-metal MCU development
DirtyJTAG 469 14 days ago JTAG adapter firmware for STM32F1
Generic_MCU_Software_Infrastructure 177 7 months ago Provide necessary software infrastructure, service, macros to support some high level abstruct concept or paradigm, such as OOPC, FSM, delegate (event-driven) and etc
apollo 25,035 17 days ago An open autonomous driving platform
A Development Environment for ARM TrustZone with GlobalPlatform Support
A C++ template library for embedded applications 2,157 17 days ago
Embedded rework of C++ STL 49 9 days ago , etc. leaned way down. Cross platform (including AVR)

Awesome-Embedded / Embedded GUI Development

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

Awesome-Embedded / Machine Learning & AI on MCU

nnom 905 6 months ago A higher-level Neural Network library for microcontrollers
nn4mp 29 over 2 years ago
Embedded Learning Library (ELL) 2,278 4 months ago Microsoft's library to deploy intelligent machine-learned models onto resource constrained platforms and small single-board computers
Qualcomm Neural Processing SDK for AI Libraries to developers run NN models on Snapdragon mobile platforms taking advantage of the CPU, GPU and/or DSP
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
uTensor 1,698 28 days ago AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow
EmbededAI 13 about 2 years ago A library that provides elements of AI to C++ applications
kann 680 almost 3 years ago A lightweight C library for artificial neural networks
m2cgen 2,800 2 months ago A CLI tool which allows to transpile trained classic ML models into a native code of various programming languages with zero dependencies including C

Awesome-Embedded / Utilities

lm4tools 203 about 6 years ago
mspdebug 188 about 1 year ago Debugging tool for MSP430 MCUs
pycs 74 over 1 year ago Python Based ARM CoreSight Debug and Trace Tools
NaiveSystems Analyze 172 about 1 month ago Static Analysis Tool for Code Security and Compliance

Tech blogs

What a C programmer should know about memory
What Every Programmer Should Know About Memory
What Every C Programmer Should Know About Undefined Behavior
A Guide to Undefined Behavior in C and C++
Software Engineering Takeaways
Embedsys weekly newsletter

Tech blogs / FAQ_Embedded

Boot section is removed (gcc, ld, ar, as)
What are .axf files?

Tech blogs / Looking for more lists like this?

awesome-c 1,905 9 days ago A curated list of awesome C frameworks, libraries and software
A curated list of project-based tutorials in C
Curated list of project-based tutorials 198,963 about 2 months ago
Curated list of awesome lists 327,194 26 days ago
A curated list of awesome Raspberry Pi tools, projects, images and resources 13,423 about 2 months ago
Curated List of Self-Driving Cars and Autonomous Vehicles Resources 2,177 7 months ago
awesome-embedded-systems 774 9 months ago
awesome-cheat-sheets 108 10 months ago Awesome Cheat Sheets for Developer Utility, like Git, Vim, Tmux, Sublime Text, Markdown, Shell
awesome-embedded-rust 6,125 24 days ago Curated list of resources for Embedded and Low-level development in the Rust programming languague
theEmbeddedNewTestament.github.io 289 over 1 year ago

Tech blogs / BOOKs

Mastering the Raspberry Pi
Modern C

Backlinks from these awesome lists: