esp32sim — это открытый эмулятор ESP32, который работает в браузере или локально. Он запускает настоящую прошивку без какого-либо физического оборудования, облачного сервиса или подписки. Проект призван упростить эксперименты, тестирование и моделирование программ для ESP32 без постоянной необходимости в подключённом устройстве. Разработчик опубликовал короткое демонстрационное видео и спрашивает специалистов по встраиваемым системам, какие возможности нужны такому эмулятору, чтобы его можно было использовать для разработки, тестирования или CI.
Эмулятор написан на Rust и выполняет эмуляцию на уровне инструкций четырёх чипов ESP32 на обеих архитектурах процессоров Espressif. Это классический ESP32 и ESP32-S3, которые используют ядра Xtensa, а также ESP32-C3 и ESP32-C6, которые используют ядра RISC-V. Каждый чип загружается с настоящего mask ROM, настоящего загрузчика второй стадии и неизменённого образа приложения, без модифицированной прошивки и заглушек. Классический ESP32 также поддерживает плату TTGO T-Display с дисплеем ST7789 и кнопками.
Большая часть логики системы на кристалле общая для разных чипов. C3 повторно использует UART, таймеры, GPIO, контроллер SPI-флеш-памяти, DMA и криптографические модели S3, добавляя собственную карту памяти, контроллер кэша и матрицу прерываний. C6 использует те же модели со своей картой памяти и интерфейсом прерываний. По-настоящему различаются только ядра процессоров. Проект распространяется под лицензией MIT, а версия для браузера работает через WebAssembly.
Вопрос разработчика остаётся открытым: что сделало бы этот эмулятор практичным для реальных процессов разработки встраиваемых систем?
Источник: Hacker News · Сводку подготовил HeadlinesBriefing