Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

⚙️ HAL Embarcado

O Bounded Context de HAL (Hardware Abstraction Layer) é o que permite ao PAEBIRU rodar em dispositivos com recursos extremamente limitados, como microcontroladores de 8, 16 e 32 bits. Ele segue o Dogma 3 (no_std First).


1. Suporte a Hardware

O PAEBIRU HAL é projetado para ser agnóstico, suportando diversas arquiteturas através de traits do embedded-hal.

ArquiteturaTargets ExemploEstado
RISC-Vriscv32imc-unknown-none-elf🟢 Suportado
ARM Cortex-Mthumbv7em-none-eabihf🟢 Suportado
XtensaESP32, ESP32-S3🟡 Em testes
AVRATmega 328P🟠 Planejado

2. Primitivas no_std

Para garantir a execução em ambientes sem sistema operacional (bare-metal), o HAL utiliza:

  • Gerenciamento de Memória: Uso extensivo de heapless para coleções de tamanho fixo em stack, evitando fragmentação de heap.
  • Criptografia Leve: Implementações otimizadas de BLAKE3 e assinaturas PQC que cabem em menos de 100 KB de ROM.
  • Concorrência: Baseada em interrupções e loops cooperativos (RTIC ou similar).

3. Periféricos e MuleNodes

Os MuleNodes são nós de borda que utilizam o HAL para se comunicar com o mundo físico:

  • Sensores: GPIO, ADC, I²C, SPI para captura de dados metabólicos.
  • Comunicação: Drivers para LoRa (SX1262), CAN bus e Modbus RTU.
  • Energy Harvesting: Lógica de gerenciamento de energia para nós alimentados por painéis solares ou vibração.

4. Invariantes do Domínio

  1. Eficiência Estrita: Cada ciclo de clock e byte de RAM deve ser justificado (Dogma 3).
  2. Abstração Transparente: O domínio do HAL expõe traits genéricos para que o kernel e biology possam rodar o mesmo código lógico em x86 ou RISC-V.
  3. Resiliência de Boot: O HAL deve garantir um estado seguro de boot mesmo em condições de baixa voltagem.

5. Veja também