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: 11 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 | 11 months 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 | 11 months 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 | 11 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 | about 1 year ago | a detailed guide for beginners |
| Real-Time C++ | 620 | 11 months 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 | almost 5 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 | about 6 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 10 years ago | TM4C123 GCC project template |
| tivaapps | 15 | over 11 years ago | Example hello-world apps for Texas Instruments TI-RTOS for Tiva C using a Linux host |
| Drivers and examples | 35 | over 1 year 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 | almost 9 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 7 years ago | |
| A demo project of FreeRTOS running on a STM32F4 Discovery board. | 155 | over 7 years ago | |
| DFU Bootloader for STM32 chips | 339 | almost 2 years ago | |
| Customizable Bootloader for STM32 microcontrollers. | 907 | almost 3 years ago | |
| Lightweight USB device Stack for STM32 microcontrollers | 722 | over 1 year ago | |
| STM32 programming with Embedded GNU Compiler | 91 | about 6 years ago | |
| A tiny portable 3D graphics lib for micro controllers (Oled display) | 147 | about 7 years ago | |
| Getting started with the STM32F4-Discovery board using the EmBitz IDE | 1 | about 8 years ago | |
| libopencm3 and FreeRTOS projects using the STM32F103C8T6 MCU | 330 | almost 2 years ago | |
| A template for builting STM23F0 ARM projects with GCC | 125 | about 3 years ago | |
| Open source flash program for STM32 using the ST serial bootloader | |||
| stm32-hid-bootloader | 163 | about 4 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 | about 7 years ago | |
| stm32f103 | 104 | almost 2 years ago | Bare metal programming on a generic STM32F103c8 board |
| stm32_samples | 100 | about 3 years ago | |
| stm32f4de example code | 65 | over 9 years ago | |
| stm32f4xx with Rust at the HAL | A series of tutorials for building STM32F4xx applications with Rust | ||
| stm32-rf-scanner | 13 | almost 2 years ago | STM32 and nRF24L01+ based 2.4GHz RF scanner |
| stm32-dc-dc | 20 | almost 2 years ago | STM32 based DC-DC converter |
| rustlink | 3 | over 2 years 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 | almost 3 years ago | Tiny peripheral library for STM8S |
| stm8-bootloader | 95 | over 6 years ago | Serial bootloader for STM8S microcontrollers |
| stm8-multi-tasker | 9 | over 7 years ago | STM8-Multi-Tasker - Preemptive/Cooperative Round Robin Scheduler for STM8 |
| Wolk STM8 stuff | 33 | over 10 years ago | |
| STM8S001J3_tiny_board | 4 | about 5 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 | about 6 years ago | |
| An esp8266 rom creation tool | 61 | about 6 years ago | |
| Wi-FI ESP8266 learning journey | 697 | over 4 years ago | |
| Wi-FI ESP32 learning journey | 456 | about 1 year ago | |
| Sming - ESP8266/ESP32 IoT Framework | 1,487 | 11 months ago | |
Awesome-Embedded / Raspberry | |||
| Raspberry Pi Bare Metal | 1 | over 9 years ago | & |
| ChibiOS/RT on the Raspberry Pi | |||
| Raspberry Pi ARM based bare metal examples | 2,716 | over 2 years ago | |
| Bare metal Raspberry Pi 3 tutorials | 2,760 | over 1 year ago | |
| Open Projects: Raspberry, Beaglebone BSP | |||
| A Real-Time Operating System on the Raspberry Pi | |||
| A port of FreeRTOS to the raspberry pi | 484 | almost 8 years ago | |
| FreeRTOS Sucessfully Ported | |||
| Exploring AArch64 assembler - Raspberry | |||
| A bootloader for the Raspberry Pi using the ethernet device | 11 | over 10 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 | about 6 years ago | |
| Learning operating system development using Linux kernel and Raspberry Pi | 13,278 | over 1 year ago | |
| A port of FreeRTOS to the raspberry pi 2B. With USB+Ethernet+TCP/IP. | 142 | over 8 years ago | |
| 64-bit Tiano Core UEFI for the Raspberry Pi 3 | 744 | over 5 years ago | |
| CXCORE-RaspberryPi3-ubuntu-18.04-aarch64 | |||
| Sample source: Baremetal source code for Raspberry | 310 | over 6 years ago | |
| Sample source: NarcOS - A bare metal ultralight kernel for Raspberry Pi 3 | 22 | over 7 years ago | |
| Sample source: FreeRTOS v9.0.0 port for Raspberry Pi 1 | 9 | about 7 years ago | |
| Sample source: A bare-metal experiments with the RaspberryPi | 8 | almost 6 years ago | |
| 「BareMetalで遊ぶ Raspberry Pi」のプログラムです。 | 46 | about 7 years ago | |
| UEFI for RaspberryPi2 and RaspberryPi3 based on Linaro EDK2 | 98 | almost 6 years ago | |
| ARM-episodes | 78 | almost 8 years ago | & |
| ARM shellcode and exploit development - BSidesMunich 2018 | 106 | over 7 years ago | |
| 64 bit Bare Metal Programming on RPI-3 | |||
| Raspberry Pi 3 Bare Metal | |||
| Assembly code for Raspberry Pi | 3 | over 7 years ago | |
| A public Baremetal Raspberry Pi code | 310 | over 6 years ago | |
| Raspberry-Pi Bare Metal Tutorial | 591 | almost 5 years ago | |
| uCOS-II on Raspberry Pi | 28 | over 12 years ago | |
| Porting uCOSII to the raspberry pi A+/B+/2B | 2 | about 10 years ago | |
| Bare-metal examples | 30 | over 10 years ago | |
| Bare-metal lab | 22 | over 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 | over 1 year 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 | over 7 years ago | |
| Various projects that utilize low level hardware instructions to interface with leds, speaker output and joystick input. | 2 | over 3 years ago | |
| Windows Embedded Compact BSP for TI's Beaglebone | |||
| BBB-BareMetal | 124 | over 1 year 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 10 years ago | |
| Bare Metal Applications on OSD335x using U-Boot | |||
| bbb-asm-demo | 18 | over 4 years ago | Extremely tiny baremetal application for BeagleBone Black |
| Beaglebone - Getting started with JTAG and CCS | |||
| BeagleBoardJTAG | |||
| beaglebone_samples | 9 | about 9 years ago | |
| FreeRTOS for BeagleBone Black | 11 | over 11 years ago | |
Awesome-Embedded / Linux kernel and device driver development | |||
| Linux inside | 30,124 | 11 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 | over 1 year ago | A C library for peripheral I/O (GPIO, SPI, I2C, MMIO, Serial) in Linux |
| OpenEmbedded | , | ||
| Linux driver practices | 80 | over 1 year ago | |
| Linux Kernel Exploitation | 5,672 | 12 months ago | A bunch of links related to Linux kernel exploitation |
| Linux Kernel Module Cheat | 4,219 | about 1 year ago | |
| Start linux kernel module development! | |||
| Minimal Linux Live | 1,550 | over 1 year ago | a tiny educational Linux distribution |
| low-level programming university #linux-kernel-and-device-driver | 10,460 | 11 months 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 | about 8 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 | over 1 year ago | |
| MPSoC FreeRTOS Development | |||
| Atomthreads: Open Source RTOS | |||
| High performance motor control | 2,999 | about 1 year ago | |
| MINIX3: Open source RTOS | |||
| 30 Days make OS | 6,004 | over 1 year ago | --> @ |
| OSDEV.org | Community: , | ||
| Real-time System Group | |||
| object-oriented C++ RTOS for microcontrollers | 439 | 11 months ago | |
| RT-Thread is an open source IoT operating system from China. | 10,645 | 11 months ago | |
| How to create an OS from scratch | 27,561 | over 1 year ago | |
| Sample Source: TetrOS is a small feature rich Tetris clone which is written in Assembly. | 772 | almost 9 years ago | |
| Sample Source: RTOS for microcontrollers | 202 | almost 5 years ago | |
| Sample Source: A Powerful embedded RTOS for ARM Cortex M microcontrollers | 117 | over 1 year ago | |
| Sample Source: An embedded operating system for ARM Cortex-M based microcontrollers | 47 | over 5 years ago | |
| Sample Source: rnk is a RTOS targeting ARM architecture. | 25 | 12 months ago | |
| Sample Source: RTOS-From-Scratch | 18 | about 8 years ago | |
| Sample Source: Embeded OS for PIC32MX270F256B | 5 | over 7 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 3 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 5 years ago | |
| RT-Thread for Raspberry Pi 2B | |||
| tock | 5,506 | 11 months ago | A secure embedded operating system for Cortex-M based microcontrollers |
| AliOS-Things | 4,592 | over 2 years 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 | over 1 year 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 | over 7 years ago | |
| automotive software(OSEK & AUTOSAR) | 995 | almost 3 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 | over 1 year ago | |
| Kernel 101 – Let’s write a Kernel | |||
| The little book about OS development | |||
| TetrOS | 772 | almost 9 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 | over 1 year ago | |
| Operating Systems C Term 2018 | 20 | about 7 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 | almost 6 years ago | |
| OpenBLT | 683 | 11 months ago | an open source and portable bootloader for microcontrollers |
| ARMv7M ELF loader | 98 | about 2 years ago | |
| Writing a Bootloader Part 1 | |||
| can-bootloader | 146 | over 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 | 11 months 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 | about 1 year ago | |
| mcu-starter-projects | 313 | almost 2 years ago | Simple starter projects for bare-metal MCU development |
| DirtyJTAG | 492 | 11 months ago | JTAG adapter firmware for STM32F1 |
| Generic_MCU_Software_Infrastructure | 180 | over 1 year 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 | 11 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 | 11 months ago | |
| Embedded rework of C++ STL | 52 | 11 months 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 | over 1 year ago | A higher-level Neural Network library for microcontrollers |
| nn4mp | 29 | over 3 years ago | |
| Embedded Learning Library (ELL) | 2,288 | over 1 year 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 | 12 months ago | AI inference library based on mbed (an RTOS for ARM chipsets) and TensorFlow |
| EmbededAI | 13 | about 3 years ago | A library that provides elements of AI to C++ applications |
| kann | 689 | almost 4 years ago | A lightweight C library for artificial neural networks |
| m2cgen | 2,826 | about 1 year 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 7 years ago | |
| mspdebug | 190 | about 2 years ago | Debugging tool for MSP430 MCUs |
| pycs | 75 | over 2 years ago | Python Based ARM CoreSight Debug and Trace Tools |
| NaiveSystems Analyze | 177 | 11 months ago | Static Analysis Tool for Code Security and Compliance |
| Serial Studio | 4,616 | 11 months 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 | 11 months 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 | about 1 year ago | |
| Curated list of awesome lists | 337,709 | 11 months ago | |
| A curated list of awesome Raspberry Pi tools, projects, images and resources | 13,742 | 12 months ago | |
| Curated List of Self-Driving Cars and Autonomous Vehicles Resources | 2,205 | over 1 year ago | |
| awesome-embedded-systems | 796 | almost 2 years ago | |
| awesome-cheat-sheets | 115 | almost 2 years ago | Awesome Cheat Sheets for Developer Utility, like Git, Vim, Tmux, Sublime Text, Markdown, Shell |
| awesome-embedded-rust | 6,387 | 11 months ago | Curated list of resources for Embedded and Low-level development in the Rust programming languague |
| theEmbeddedNewTestament.github.io | 321 | over 2 years ago | |
Tech blogs / BOOKs | |||
| Mastering the Raspberry Pi | |||
| Modern C | |||