Awesome-Embedded
Embedded dev resource
A curated collection of resources and knowledge for embedded system development
A curated list of awesome embedded programming.
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 |