esp32sim est un émulateur ESP32 open source qui fonctionne dans le navigateur ou en local. Il exécute du firmware réel sans matériel physique, service cloud ni abonnement. Le projet vise à faciliter l'expérimentation, les tests et la simulation de logiciels ESP32 sans toujours avoir besoin d'un appareil connecté. Son développeur a partagé une courte vidéo de démonstration et demande aux développeurs embarqués quelles fonctionnalités un émulateur de ce type devrait proposer avant de pouvoir l'utiliser pour le développement, les tests ou l'intégration continue.
L'émulateur est écrit en Rust et réalise une émulation au niveau des instructions de quatre puces ESP32, à travers les deux architectures de processeur d'Espressif. Il s'agit de l'ESP32 classique et de l'ESP32-S3, qui utilisent des cœurs Xtensa, ainsi que de l'ESP32-C3 et de l'ESP32-C6, qui utilisent des cœurs RISC-V. Chaque puce démarre avec sa mask ROM réelle, son bootloader de second niveau réel et une image d'application non modifiée, sans firmware corrigé ni stubs. L'ESP32 classique prend également en charge la carte TTGO T-Display, avec son écran ST7789 et ses boutons.
Une grande partie de la logique du système sur puce est partagée entre les puces. Le C3 réutilise l'UART, les minuteurs, les GPIO, le contrôleur de mémoire flash SPI, le DMA et les modèles cryptographiques de la S3, tout en ajoutant sa propre carte mémoire, son contrôleur de cache et sa matrice d'interruptions. Le C6 réutilise les mêmes modèles avec sa propre carte mémoire et son propre front-end d'interruptions. Seuls les cœurs de processeur sont réellement distincts. Le projet est publié sous licence MIT, et la version pour navigateur fonctionne via WebAssembly.
La question du développeur reste ouverte : qu'est-ce qui rendrait cet émulateur réellement utile pour les flux de travail embarqués ?
Source: Hacker News · Résumé par HeadlinesBriefing