Awesome-Embedded
A curated list of awesome embedded resource.
Table of content
- Interview
- Embedded Software Skill
- Common
- Microcontroller
- Raspberry
- Bealgebone
- Assembly
- Linux Programming
- RTOS
- AUTOSAR
- OS
- Compiler
- Bootloader
- Makefile
- Others
- Tips & tricks
- FAQ - Embedded
Interview
On the way to be a full-stack embedded software engineer.
Embedded Software Skill
- Skills/Knowledge required to become a champion Embedded Software Developer.
- How to be low-level programmer
- Programmer Competency Matrix
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
MCU programming
Bare-metal programming (Don't need MCU)
MSP430
TM4C123
- 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)
- 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
MSP432
STM32
- STM32 bootloader
- 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.
- DFU Bootloader for STM32 chips
STM8
Raspberry
- ChibiOS/RT on the Raspberry Pi
- Raspberry Pi ARM based bare metal examples
- Bare metal Raspberry Pi 3 tutorials
- Open Projects: Raspberry, Beaglebone BSP
- A Real-Time Operating System on the Raspberry Pi
- A port of FreeRTOS to the raspberry pi
- FreeRTOS Sucessfully Ported
- Exploring AArch64 assembler - Raspberry
- A bootloader for the Raspberry Pi using the ethernet device
- Bare Metal Raspberry Pi
- Baking Pi – Operating Systems Development
- Search for 'Raspberry' topic on Github
- elinux: Raspberry Pi Programming or elinux: RPi Hub
- Stanford CS104e - An Experimental Course on Operating Systems
- Computer Systems
- Build a Debian-based ARM64 system for Raspberry Pi 3
- Learning operating system development using Linux kernel and Raspberry Pi
- A port of FreeRTOS to the raspberry pi 2B. With USB+Ethernet+TCP/IP.
- 64-bit Tiano Core UEFI for the Raspberry Pi 3
- CXCORE-RaspberryPi3-ubuntu-18.04-aarch64
- Sample source: Baremetal source code for Raspberry
Beaglebone
- BeagleBone Black I2C References
- Learning BeagleBone Python Programming
- 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.
Linux Programming
- Writing device drivers in Linux
- YOLINUX Tutorials
- Linux driver programming
- Free training materials and conference presentations
- eBook: Linux Drivers or Slides: Linux Drivers
- Communication: OpenEmbedded,
Assembly
RTOS
- ROS
- FreeRTOS
- FreeRTOS - Explaination
- FreeRTOS API Reference Documentation
- How to Write a Small RTOS
- RTOS From Scrach
- Writing a simple operating system from scratch
- Free real-time operating system (RTOS) designed for deeply embedded applications
- MPSoC FreeRTOS Development
- Atomthreads: Open Source RTOS
- High performance motor control
- MINIX3: Open source RTOS
- 30 Days make OS --> YOS @Yannik
- Communication: OSDEV.org, reddit/osdev
- Real-time System Group
- object-oriented C++ RTOS for microcontrollers
- RT-Thread is an open source IoT operating system from China.
- How to create an OS from scratch
- Sample Source: TetrOS is a small feature rich Tetris clone which is written in Assembly.
- 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: rnk is a RTOS targeting ARM architecture.
- Sample Source: RTOS-From-Scratch
AUTOSAR
OS
- ucLinux: The Embedded Linux/Microcontroller project is a port of Linux to systems without a Memory Management Unit (MMU).
- Tizen
Compiler
Bootloader
Makefile
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 here.
- 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
Tips & tricks
Awesome Cheat Sheets for Developer Utility, like Git, Vim , Tmux, SublimeText, Markdown, Shell.