Awesome-Embedded
A curated list of awesome embedded programming.
https://github.com/nhivp/Awesome-Embedded
Last synced: 3 days ago
JSON representation
-
Looking for more lists like this?
-
USB
- A curated list of awesome Raspberry Pi tools, projects, images and resources
- A curated list of project-based tutorials in C
- Curated list of awesome lists
- awesome-c - A curated list of awesome C frameworks, libraries and software.
- awesome-embedded-rust - Curated list of resources for Embedded and Low-level development in the Rust programming languague.
- awesome-embedded-systems
- awesome-cheat-sheets - Awesome Cheat Sheets for Developer Utility, like Git, Vim, Tmux, Sublime Text, Markdown, Shell.
- Curated list of project-based tutorials
- theEmbeddedNewTestament.github.io
- Curated List of Self-Driving Cars and Autonomous Vehicles Resources
-
-
Embedded GUI Development
-
USB
- 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 Wizard - Sophisticated GUI for Your Embedded Platform
-
-
Tips & tricks
-
USB
- What Every C Programmer Should Know About Undefined Behavior - every-c-programmer-should-know_14.html) [part 3](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html)
- GNU GDB Debugger Command Cheat Sheet
- Awesome Cheat Sheets
- What Every Programmer Should Know About Memory
- A Guide to Undefined Behavior in C and C++
- Software Engineering Takeaways
- Embedsys weekly newsletter
- What Every C Programmer Should Know About Undefined Behavior - every-c-programmer-should-know_14.html) [part 3](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know_21.html)
- GNU GDB Debugger Command Cheat Sheet
- Vim Config for Reading Linux Kernel Source Code
-
-
OS
-
ESP8266
- Operating System Development Series
- The little book about OS development
- Writing a Simple Operating System from Scratch
- ucLinux
- Tizen
- JamesM's kernel development tutorials
- Bare Bones - a simple kernel for 32-bit x86 and boot it.
- 7 Steps to Writing a Simple Cooperative Scheduler
- Bootstrap yourself to write an OS from scratch. A book for self-learner.
- A simple OS kernel for research, teaching, and fun
- Operating System Development Series
- Operating Systems C Term 2018
-
-
Bootloader
-
ESP8266
- Writing a Bootloader Part 1
- Writing a boot loader in Assembly and C
- Writing a Bootloader Part 3
- 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 1
- 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
- can-bootloader - The bootloader used to flash our CAN-connected boards
-
-
RTOS
-
ESP8266
- List of open source real-time operating systems
- MINIX3: Open source RTOS
- FreeRTOS
- FreeRTOS API Reference Documentation
- How to Write a Small RTOS
- RTOS From Scrach
- MPSoC FreeRTOS Development
- Atomthreads: Open Source RTOS
- OSDEV.org
- Real-time System Group
- How I ended up writing a new real-time kernel
- CoRTOS - simple/) - 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.
- CoRTOS - simple/) - An open source minimalist RTOS.
- object-oriented C++ RTOS for microcontrollers
- RT-Thread is an open source IoT operating system from China.
- tock - A secure embedded operating system for Cortex-M based microcontrollers.
- How to create an OS from scratch
- 30 Days make OS - -> [YOS](https://github.com/yourtion/YOS) @[Yannik](https://yannik520.github.io/)
- AliOS-Things - AliOS Things released by Alibaba is an open-source implementation of operating system (OS) for Internet of Things (IoT).
- Sample Source: TetrOS is a small feature rich Tetris clone which is written in Assembly.
- Sample Source: rnk is a RTOS targeting ARM architecture.
- FreeRTOS API Reference Documentation
- mini-arm-os & qemu with a stm32 - arm-os) - Build a minimal multi-tasking OS kernel for ARM Cortex-M series from scratch
- Free real-time operating system (RTOS) designed for deeply embedded applications
- Sample Source: RTOS for microcontrollers
- Sample Source: A Powerful embedded RTOS for ARM Cortex M microcontrollers
- Sample Source: An embedded operating system for ARM Cortex-M based microcontrollers
- Sample Source: RTOS-From-Scratch
- Sample Source: Embeded OS for PIC32MX270F256B
- Sample Source: TNeo - a well-formed and carefully tested preemptive real-time kernel for 16- and 32-bits MCUs
- µ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.
- Real-Time Kernel '0' - A lean, highly deterministic, low-latency real-time kernel for ARMv6/7M.
- High performance motor control
- Writing a simple operating system from scratch
-
-
MCU programming
-
STM32
- stm32f4xx with Rust at the HAL - A series of tutorials for building STM32F4xx applications with Rust.
- STM32 bootloader
- Open source flash program for STM32 using the ST serial bootloader
- STM32F103C8 Examples
- DFU Bootloader for STM32 chips
- stm32-dc-dc - STM32 based DC-DC converter
- rustlink - small set of Rust tools to program STM32 devices
- stm32-rf-scanner - STM32 and nRF24L01+ based 2.4GHz RF scanner
- A tiny portable 3D graphics lib for micro controllers (Oled display)
- stm32_samples
- stm32f4de example code
- A template for builting STM23F0 ARM projects with GCC
- stm32-hid-bootloader - Driverless USB HID bootloader and flashing tool for STM32F10X devices
- stm32f4xx with Rust at the HAL - A series of tutorials for building STM32F4xx applications with Rust.
- Customizable Bootloader for STM32 microcontrollers.
- 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.
- Lightweight USB device Stack for STM32 microcontrollers
- STM32 programming with Embedded GNU Compiler
- Getting started with the STM32F4-Discovery board using the EmBitz IDE
- libopencm3 and FreeRTOS projects using the STM32F103C8T6 MCU
- stm32f103 - Bare metal programming on a generic STM32F103c8 board
- stm32l1xx-template - A template for building firmware for the STM32L1xx.
-
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.
-
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
-
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
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Linux command line build system to generate binaries for TM4C123 (ARM Cortex M4)
- Tivaware bootloader
- tm4c-gcc - TM4C123 GCC project template.
- tivaapps - Example hello-world apps for Texas Instruments TI-RTOS for Tiva C using a Linux host
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Tivaware bootloader
- Linux command line build system to generate binaries for TM4C123 (ARM Cortex M4)
- Tivaware bootloader
- FreeRTOS-GCC-tm4c123glx - A port of FreeRTOS to the Texas Instruments Tiva TM4C123GLX Launchpad.
- Tivaware bootloader
- Tivaware bootloader
- Diagnosing Common Development Problems and Tips & Info for TM4C Devices
-
STM32F7
-
ESP8266
-
STM8
- stm8-multi-tasker - STM8-Multi-Tasker - Preemptive/Cooperative Round Robin Scheduler for STM8
- stm8-bare-min - Tiny peripheral library for STM8S
- stm8-bootloader - Serial bootloader for STM8S microcontrollers
- Wolk STM8 stuff
- STM8S001J3_tiny_board - A tiny dev board for STM8S001J3 MCU designed in KiCad.
-
General
- McuOnEclipse - Everything about Eclipse, microcontrollers, software and tools.
-
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.
-
-
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.
-
Embedded Software Skill
-
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
- Everything You Never Wanted To Know About Linker Script
- A Sample Linker Script
- TeraTerm Scripts
- Linker Command File Primer
- TeraTerm Scripts
- Linker Command File Primer
- ARM Cortex M4 Blink Example (Linker Script)
- Modern Embedded Systems Programming Course - Learn from the basics to modern embedded programming practice.
-
Raspberry
-
ESP8266
- Raspberry Pi Bare Metal
- ChibiOS/RT on the Raspberry Pi
- Open Projects: Raspberry, Beaglebone BSP
- A Real-Time Operating System on the Raspberry Pi
- FreeRTOS Sucessfully Ported
- Exploring AArch64 assembler - Raspberry
- Bare Metal Raspberry Pi
- Bare Metal Programming in C
- Baking Pi – Operating Systems Development
- Search for 'Raspberry' topic on Github
- elinux: Raspberry Pi Programming
- Computer Systems
- 64 bit Bare Metal Programming on RPI-3
- Raspberry Pi 3 Bare Metal
- Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux {book}
- Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux {website}
- UEFI for RaspberryPi2 and RaspberryPi3 based on Linaro EDK2
- Learning operating system development using Linux kernel and Raspberry Pi
- Writing a "bare metal" operating system for Raspberry Pi 4
- Raspberry Pi ARM based bare metal examples
- 64-bit Tiano Core UEFI for the Raspberry Pi 3
- Raspberry-Pi Bare Metal Tutorial
- Bare metal Raspberry Pi 3 tutorials
- A Real-Time Operating System on the Raspberry Pi
- A port of FreeRTOS to the raspberry pi
- A bootloader for the Raspberry Pi using the ethernet device
- Stanford CS104e - An Experimental Course on Operating Systems
- Computer Systems
- Build a Debian-based ARM64 system for Raspberry Pi 3
- A port of FreeRTOS to the raspberry pi 2B. With USB+Ethernet+TCP/IP.
- Sample source: Baremetal source code for Raspberry
- Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3
- Sample source: FreeRTOS v9.0.0 port for Raspberry Pi 1
- Sample source: A bare-metal experiments with the RaspberryPi
- 「BareMetalで遊ぶ Raspberry Pi」のプログラムです。
- ARM-episodes - exploitation-iot-episode-1/)
- ARM shellcode and exploit development - BSidesMunich 2018
- Assembly code for Raspberry Pi
- uCOS-II on Raspberry Pi
- Porting uCOSII to the raspberry pi A+/B+/2B
- Bare-metal examples
- Bare-metal lab
- Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux {website}
-
-
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
- beaglebone_samples
- 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
- FreeRTOS for BeagleBone Black
- Learning BeagleBone Python Programming
- Running a Baremetal Beaglebone Black - a-baremetal-beaglebone-black-part-2/)
-
-
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
- Linux Kernel Module Cheat
- Minimal Linux Live - a tiny educational Linux distribution
- Linux Kernel Exploitation - A bunch of links related to Linux kernel exploitation
- c-periphery - A C library for peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) in Linux.
- Writing device drivers in Linux
- YOLINUX Tutorials
- Linux driver programming
- Linux driver practices
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
- Linux driver programming
-
-
Assembly
-
WindowCE
-
Compiler
-
ESP8266
-
-
Makefile
-
Peripheral
-
Memory Protection Unit
-
USB
- tinyusb - An open source USB stack for a variety of Embedded Systems.
-
-
Others
-
USB
- A practical approach to Kalman filter and how to implement it
- Embedded System programming
- ELC 2018 Presentations
- ARM Edition
- The gem5 Simulator - known sophisticated simulator used for computer system research at both architecture and micro-architecture levels. Main page is [here](http://gem5.org/Main_Page).
- LineageOS Android Distribution
- The NoCAN platform
- Realtime OS on Embedded Systems
- These projects were produced in the five weeks of ECE 4760 each year.
- A Development Environment for ARM TrustZone with GlobalPlatform Support
- apollo - An open autonomous driving platform.
- A C++ template library for embedded applications
- A practical approach to Kalman filter and how to implement it
- Embedded System programming
- Realtime OS on Embedded Systems
- Advanced fault backtrace library for ARM Cortex-M series MCU
- mcu-starter-projects - Simple starter projects for bare-metal MCU development.
- Generic_MCU_Software_Infrastructure - Provide necessary software infrastructure, service, macros to support some high level abstruct concept or paradigm, such as OOPC, FSM, delegate (event-driven) and etc.
- Embedded rework of C++ STL - `basic_string`, `basic_ostream` etc. leaned way down. Cross platform (including AVR).
- RAMEN 🍜 - flow-based programming implemented in a simple single-header unopinionated library.
-
-
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.
- 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.
- nnom - A higher-level Neural Network library for microcontrollers.
- kann - A lightweight C library for artificial neural networks.
- uTensor - AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow.
- Embedded Learning Library (ELL) - Microsoft's library to deploy intelligent machine-learned models onto resource constrained platforms and small single-board computers.
- EmbededAI - A library that provides elements of AI to C++ applications.
- nn4mp
-
-
FAQ_Embedded
-
BOOKs
-
Utilities
-
USB
- Serial Studio - Visualize, analyze and stream over the internet data generated by your MCU project
- NaiveSystems Analyze - Static Analysis Tool for Code Security and Compliance
- lm4tools
- mspdebug - Debugging tool for MSP430 MCUs
- pycs - Python Based ARM CoreSight Debug and Trace Tools
- Scrutiny Debugger - An open source debugging, visualization and testing tool for C/C++ embedded applications that works through instrumentation.
-
-
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.
-
Categories
MCU programming
101
Raspberry
43
RTOS
39
Linux kernel and device driver development
25
Others
20
Common
20
Beaglebone
16
OS
12
Bootloader
11
Looking for more lists like this?
10
Tips & tricks
10
Machine Learning & AI on MCU
9
WindowCE
8
Utilities
6
Embedded Software Skill
5
BOOKs
5
Interview
4
Peripheral
3
Automotive
3
Makefile
3
FAQ_Embedded
2
Assembly
2
Embedded GUI Development
2
Compiler
1
Sub Categories
Keywords
embedded
12
microcontroller
10
arm
8
operating-system
7
iot
7
linux-kernel
6
cortex-m
6
stm32
6
c
5
arduino
5
cpp
4
rust
4
linux
4
embedded-systems
4
risc-v
3
c-plus-plus
3
rtos
3
kernel
3
machine-learning
3
tutorial
3
awesome
3
awesome-list
3
esp32
2
cpp14
2
framework
2
mcu
2
os
2
algorithms
2
deep-learning
2
armv8
2
uefi
2
qemu
2
firmware
2
rpi
2
python
2
resources
2
cpp11
2
raspberry-pi-3
2
library
2
hal
2
stm32hal
2
real-time
2
raspberry-pi
2
hardware-abstraction-layer
2
javascript
2
stdlib
1
qt
1
projects
1
network
1
microkernel
1