Awesome-Embedded

Embedded dev resource

A curated collection of resources and knowledge for embedded system development

A curated list of awesome embedded programming.

GitHub

6k stars
156 watching
944 forks
last commit: about 2 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 307,893 about 1 month 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,460 about 1 month 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
Modern Embedded Systems Programming Course 726 about 2 months ago Learn from the basics to modern embedded programming practice

Awesome-Embedded / MCU programming / General

McuOnEclipse Everything about Eclipse, microcontrollers, software and tools

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

Simplest bare metal program for ARM ( )
Bare metal programming guide 3,359 4 months ago a detailed guide for beginners
Real-Time C++ 620 about 1 month 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 about 4 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) 22 over 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 11 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 about 8 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 over 6 years ago
A demo project of FreeRTOS running on a STM32F4 Discovery board. 155 over 6 years ago
DFU Bootloader for STM32 chips 339 12 months ago
Customizable Bootloader for STM32 microcontrollers. 907 about 2 years ago
Lightweight USB device Stack for STM32 microcontrollers 722 8 months ago
STM32 programming with Embedded GNU Compiler 91 about 5 years ago
A tiny portable 3D graphics lib for micro controllers (Oled display) 147 about 6 years ago
Getting started with the STM32F4-Discovery board using the EmBitz IDE 1 over 7 years ago
libopencm3 and FreeRTOS projects using the STM32F103C8T6 MCU 330 about 1 year ago
A template for builting STM23F0 ARM projects with GCC 125 over 2 years ago
Open source flash program for STM32 using the ST serial bootloader
stm32-hid-bootloader 163 over 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 856 over 6 years ago
stm32f103 104 about 1 year ago Bare metal programming on a generic STM32F103c8 board
stm32_samples 100 over 2 years ago
stm32f4de example code 65 over 8 years ago
stm32f4xx with Rust at the HAL A series of tutorials for building STM32F4xx applications with Rust
stm32-rf-scanner 13 about 1 year ago STM32 and nRF24L01+ based 2.4GHz RF scanner
stm32-dc-dc 20 about 1 year ago STM32 based DC-DC converter
rustlink 3 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 120 about 2 years ago Tiny peripheral library for STM8S
stm8-bootloader 95 almost 6 years ago Serial bootloader for STM8S microcontrollers
stm8-multi-tasker 9 almost 7 years ago STM8-Multi-Tasker - Preemptive/Cooperative Round Robin Scheduler for STM8
Wolk STM8 stuff 33 almost 10 years ago
STM8S001J3_tiny_board 4 about 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 302 over 5 years ago
An esp8266 rom creation tool 61 over 5 years ago
Wi-FI ESP8266 learning journey 697 over 3 years ago
Wi-FI ESP32 learning journey 456 3 months ago
Sming - ESP8266/ESP32 IoT Framework 1,487 about 1 month ago

Awesome-Embedded / Raspberry

Raspberry Pi Bare Metal 1 almost 9 years ago &
ChibiOS/RT on the Raspberry Pi
Raspberry Pi ARM based bare metal examples 2,716 over 1 year ago
Bare metal Raspberry Pi 3 tutorials 2,760 7 months ago
Open Projects: Raspberry, Beaglebone BSP
A Real-Time Operating System on the Raspberry Pi
A port of FreeRTOS to the raspberry pi 484 about 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 92 over 5 years ago
Learning operating system development using Linux kernel and Raspberry Pi 13,278 10 months ago
A port of FreeRTOS to the raspberry pi 2B. With USB+Ethernet+TCP/IP. 142 over 7 years ago
64-bit Tiano Core UEFI for the Raspberry Pi 3 744 almost 5 years ago
CXCORE-RaspberryPi3-ubuntu-18.04-aarch64
Sample source: Baremetal source code for Raspberry 310 over 5 years ago
Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3 22 over 6 years ago
Sample source: FreeRTOS v9.0.0 port for Raspberry Pi 1 9 over 6 years ago
Sample source: A bare-metal experiments with the RaspberryPi 8 about 5 years ago
「BareMetalで遊ぶ Raspberry Pi」のプログラムです。 46 over 6 years ago
UEFI for RaspberryPi2 and RaspberryPi3 based on Linaro EDK2 98 about 5 years ago
ARM-episodes 78 almost 7 years ago &
ARM shellcode and exploit development - BSidesMunich 2018 106 almost 7 years ago
64 bit Bare Metal Programming on RPI-3
Raspberry Pi 3 Bare Metal
Assembly code for Raspberry Pi 3 almost 7 years ago
A public Baremetal Raspberry Pi code 310 over 5 years ago
Raspberry-Pi Bare Metal Tutorial 591 about 4 years ago
uCOS-II on Raspberry Pi 28 over 11 years ago
Porting uCOSII to the raspberry pi A+/B+/2B 2 over 9 years ago
Bare-metal examples 30 over 9 years ago
Bare-metal lab 22 almost 10 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}
Writing a "bare metal" operating system for Raspberry Pi 4 3,493 9 months ago

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 almost 7 years ago
Various projects that utilize low level hardware instructions to interface with leds, speaker output and joystick input. 2 over 2 years ago
Windows Embedded Compact BSP for TI's Beaglebone
BBB-BareMetal 124 9 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 over 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 over 8 years ago
FreeRTOS for BeagleBone Black 11 over 10 years ago

Awesome-Embedded / Linux kernel and device driver development

Linux inside 30,124 about 2 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 752 9 months ago A C library for peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) in Linux
OpenEmbedded ,
Linux driver practices 80 11 months ago
Linux Kernel Exploitation 5,672 3 months ago A bunch of links related to Linux kernel exploitation
Linux Kernel Module Cheat 4,219 4 months ago
Start linux kernel module development!
Minimal Linux Live 1,550 11 months ago a tiny educational Linux distribution
low-level programming university #linux-kernel-and-device-driver 10,460 about 1 month 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 181 over 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 170 9 months ago
MPSoC FreeRTOS Development
Atomthreads: Open Source RTOS
High performance motor control 2,999 4 months ago
MINIX3: Open source RTOS
30 Days make OS 6,004 10 months ago --> @
OSDEV.org Community: ,
Real-time System Group
object-oriented C++ RTOS for microcontrollers 439 about 2 months ago
RT-Thread is an open source IoT operating system from China. 10,645 about 1 month ago
How to create an OS from scratch 27,561 6 months ago
Sample Source: TetrOS is a small feature rich Tetris clone which is written in Assembly. 772 about 8 years ago
Sample Source: RTOS for microcontrollers 202 about 4 years ago
Sample Source: A Powerful embedded RTOS for ARM Cortex M microcontrollers 117 7 months ago
Sample Source: An embedded operating system for ARM Cortex-M based microcontrollers 47 almost 5 years ago
Sample Source: rnk is a RTOS targeting ARM architecture. 25 2 months ago
Sample Source: RTOS-From-Scratch 18 over 7 years ago
Sample Source: Embeded OS for PIC32MX270F256B 5 over 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 233 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 almost 5 years ago
RT-Thread for Raspberry Pi 2B
tock 5,506 about 1 month ago A secure embedded operating system for Cortex-M based microcontrollers
AliOS-Things 4,592 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. 630 8 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. 360 almost 7 years ago
automotive software(OSEK & AUTOSAR) 995 about 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. 12,152 10 months ago
Kernel 101 – Let’s write a Kernel
The little book about OS development
TetrOS 772 about 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 812 9 months ago
Operating Systems C Term 2018 20 over 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 23 about 5 years ago
OpenBLT 683 about 1 month ago an open source and portable bootloader for microcontrollers
ARMv7M ELF loader 98 about 1 year ago
Writing a Bootloader Part 1
can-bootloader 146 almost 2 years 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 5,134 about 1 month 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,719 5 months ago
mcu-starter-projects 313 about 1 year ago Simple starter projects for bare-metal MCU development
DirtyJTAG 492 about 2 months ago JTAG adapter firmware for STM32F1
Generic_MCU_Software_Infrastructure 180 10 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,323 about 2 months ago An open autonomous driving platform
A Development Environment for ARM TrustZone with GlobalPlatform Support
A C++ template library for embedded applications 2,274 about 1 month ago
Embedded rework of C++ STL 52 about 1 month 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 965 10 months ago A higher-level Neural Network library for microcontrollers
nn4mp 29 almost 3 years ago
Embedded Learning Library (ELL) 2,288 8 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,742 3 months ago AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow
EmbededAI 13 over 2 years ago A library that provides elements of AI to C++ applications
kann 689 about 3 years ago A lightweight C library for artificial neural networks
m2cgen 2,826 6 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 over 6 years ago
mspdebug 190 over 1 year ago Debugging tool for MSP430 MCUs
pycs 75 almost 2 years ago Python Based ARM CoreSight Debug and Trace Tools
NaiveSystems Analyze 177 about 1 month ago Static Analysis Tool for Code Security and Compliance
Serial Studio 4,616 about 1 month ago Visualize, analyze and stream over the internet data generated by your MCU project

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,952 about 1 month 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 206,954 5 months ago
Curated list of awesome lists 337,709 about 1 month ago
A curated list of awesome Raspberry Pi tools, projects, images and resources 13,742 3 months ago
Curated List of Self-Driving Cars and Autonomous Vehicles Resources 2,205 10 months ago
awesome-embedded-systems 796 about 1 year ago
awesome-cheat-sheets 115 about 1 year ago Awesome Cheat Sheets for Developer Utility, like Git, Vim, Tmux, Sublime Text, Markdown, Shell
awesome-embedded-rust 6,387 about 1 month ago Curated list of resources for Embedded and Low-level development in the Rust programming languague
theEmbeddedNewTestament.github.io 321 over 1 year ago

Tech blogs / BOOKs

Mastering the Raspberry Pi
Modern C

Backlinks from these awesome lists:

More related projects: