esp32sim é um emulador ESP32 de código aberto que roda no navegador ou localmente. Ele executa firmware real sem qualquer hardware físico, serviço em nuvem ou assinatura. O projeto busca facilitar a experimentação, os testes e a simulação de software ESP32 sem depender sempre de um dispositivo conectado. Seu desenvolvedor compartilhou um breve vídeo de demonstração e pergunta a desenvolvedores embarcados quais recursos um emulador desse tipo precisaria ter antes de ser usado em desenvolvimento, testes ou CI.
O emulador é escrito em Rust e realiza emulação em nível de instrução de quatro chips ESP32, nas duas arquiteturas de CPU da Espressif. São eles o ESP32 clássico e o ESP32-S3, que usam núcleos Xtensa, e o ESP32-C3 e o ESP32-C6, que usam núcleos RISC-V. Cada chip inicializa com sua mask ROM real, seu bootloader de segundo estágio real e uma imagem de aplicação não modificada, sem firmware remendado ou stubs. O ESP32 clássico também oferece suporte à placa TTGO T-Display, com seu display ST7789 e botões.
Grande parte da lógica do sistema em chip é compartilhada entre os chips. O C3 reutiliza a UART, os temporizadores, as GPIOs, o controlador de flash SPI, o DMA e os modelos de criptografia do S3, acrescentando seu próprio mapa de memória, controlador de cache e matriz de interrupções. O C6 reutiliza os mesmos modelos com seu próprio mapa de memória e front-end de interrupções. Apenas os núcleos de CPU são realmente distintos. O projeto é licenciado sob MIT, e a versão para navegador roda via WebAssembly.
A pergunta do desenvolvedor continua em aberto: o que tornaria esse emulador prático para fluxos de trabalho embarcados reais?
Fonte: Hacker News · Resumido por HeadlinesBriefing