What are Embedded Systems?
The term embedded or embedded systems can be interpreted in several ways depending on your background, knowledge, and exposure to embedded technology. For the purpose of this document, firmware is defined as the software layer between the underlying hardware and the operating system (OS). The main purpose of firmware is to initialize and abstract enough hardware so operating systems drivers and components can further configure the hardware according to its functionality. In addition to firmware, embedded systems can be defined as having the characteristics described below.
Hardware:
Limited resources
16KB - 1GB RAM
32MB - 4GB Flash storage
System-on-chip (SoC)
System-on-module (SoM)
Microcontroller (MCU)
Bootloaders:
Das U-boot
RedBoot
CoreBoot
Grub
Little Kernel
and more
Common CPU architectures:
Word lengths from 8-bit, 16-bit, 32-bit, and 64-bit
ARM
MIPS
AVR
PowerPC
x86
Common operating system platforms:
Embedded Linux
OpenWrt variants
Android
Ubuntu Core
RTOS (Microkernel)
FreeRTOS
Mbed OS
QNX
AUTOSAR
INTEGRITY
BareMetal
Windows
Windows Compact 2016
Windows Compact 7
Windows 10 IoT
Commonly used programming languages:
Assembly
C / C++
Python
Classic ASP
PHP
Perl
Lua
Golang (Go)
Rust
Lifespan:
Sometimes immortal 😉
*Some flash chips use a disclaimer of 20 years data retention*
"Trustworthy" systems
Vehicles ~7-15 years
Last updated