No ecossistema da Tecnologia da Informação, enquanto os sistemas de propósito geral (como PCs e servidores) buscam a versatilidade, os Sistemas Embarcados (Embedded Systems) fundamentam-se na especialização. Um sistema embarcado é, essencialmente, um sistema computacional microprocessado projetado para realizar tarefas dedicadas e específicas, muitas vezes sob restrições de tempo real e recursos de hardware limitados.
Ao contrário de um computador convencional, onde o usuário instala diversos softwares para diferentes fins, o sistema embarcado "é" a própria aplicação. Ele está integrado ao dispositivo que controla, sendo o "cérebro" de equipamentos que variam desde um simples termostato digital até complexos sistemas de aviônica em aeronaves.
A arquitetura de um sistema embarcado moderno sustenta-se em três componentes principais:
Utilização de microcontroladores (MCU) ou microprocessadores (MPU), onde a CPU, memória (RAM/Flash) e periféricos de entrada/saída (I/O) coexistem, muitas vezes, em um único chip (System-on-Chip - SoC).
O código é escrito para interagir diretamente com os registradores do hardware. Em sistemas mais robustos, utiliza-se um RTOS (Real-Time Operating System) para garantir o determinismo das tarefas.
Através de sensores (entrada) e atuadores (saída), o sistema processa variáveis analógicas e digitais para influenciar o ambiente ao seu redor.