⚙️ 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_stdFirst).
1. Suporte a Hardware
O PAEBIRU HAL é projetado para ser agnóstico, suportando diversas arquiteturas através de traits do embedded-hal.
| Arquitetura | Targets Exemplo | Estado |
|---|---|---|
| RISC-V | riscv32imc-unknown-none-elf | 🟢 Suportado |
| ARM Cortex-M | thumbv7em-none-eabihf | 🟢 Suportado |
| Xtensa | ESP32, ESP32-S3 | 🟡 Em testes |
| AVR | ATmega 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
heaplesspara 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
- Eficiência Estrita: Cada ciclo de clock e byte de RAM deve ser justificado (Dogma 3).
- Abstração Transparente: O domínio do HAL expõe traits genéricos para que o
kernelebiologypossam rodar o mesmo código lógico em x86 ou RISC-V. - Resiliência de Boot: O HAL deve garantir um estado seguro de boot mesmo em condições de baixa voltagem.