HeadlinesBriefing HeadlinesBriefing.com

esp32sim: emulador de ESP32 de código abierto en Rust

Hacker News •
×

esp32sim es un emulador de ESP32 de código abierto que funciona en el navegador o en local. Ejecuta firmware real sin necesidad de hardware físico, servicios en la nube ni suscripción. El proyecto pretende facilitar la experimentación, las pruebas y la simulación de software para ESP32 sin depender siempre de un dispositivo conectado. Su desarrollador ha compartido un breve vídeo de demostración y pregunta a los desarrolladores de sistemas embebidos qué funciones necesitaría un emulador así antes de poder usarlo para desarrollo, pruebas o CI.

El emulador está escrito en Rust y realiza una emulación a nivel de instrucciones de cuatro chips ESP32 en las dos arquitecturas de CPU de Espressif. Se trata del ESP32 clásico y del ESP32-S3, que usan núcleos Xtensa, y del ESP32-C3 y el ESP32-C6, que usan núcleos RISC-V. Cada chip arranca su ROM de máscara real, su gestor de arranque de segunda etapa real y una imagen de aplicación sin modificar, sin firmware parcheado ni stubs. El ESP32 clásico también admite la placa TTGO T-Display, con su pantalla ST7789 y sus botones.

Gran parte de la lógica del sistema en chip se comparte entre los distintos chips. El C3 reutiliza la UART, los temporizadores, las GPIO, el controlador de memoria flash SPI, el DMA y los modelos criptográficos del S3, y añade su propio mapa de memoria, controlador de caché y matriz de interrupciones. El C6 reutiliza los mismos modelos con su propio mapa de memoria y su propio front-end de interrupciones. Solo los núcleos de CPU son realmente distintos. El proyecto tiene licencia MIT, y la versión para navegador funciona mediante WebAssembly.

La pregunta del desarrollador sigue abierta: ¿qué haría que este emulador resultara práctico para flujos de trabajo reales con sistemas embebidos?

Fuente: Hacker News · Resumido por HeadlinesBriefing