원문 캡처 · github.com
원문 캡처 · github.com

Rust로 만든 ESP32 에뮬레이터 esp32sim은 ESP32-S3·C3·C6 펌웨어를 브라우저에서 실행하고, 명령줄에서는 클래식 ESP32도 에뮬레이션한다. 설치 없이 라이브 데모를 열어 제공된 펌웨어를 시험하거나 직접 가진 펌웨어를 불러올 수 있다.

브라우저에서는 보드를 고르고 ROM ELF와 펌웨어를 불러온 뒤 Boot를 누르면 된다. hello_world, 터치 LCD 패널, Atech 보드 데모와 C3·C6 데모를 제공하며, Linux 6.11을 실행하는 S3 데모도 있다. 다만 브라우저판에는 네트워크 소켓이 없어 NAT 기능이 없다. 저장소에 데모 펌웨어는 포함돼 있지만 마스크 ROM과 xterm.js, Linux 이미지는 포함돼 있지 않아, 로컬에서 실행할 때는 먼저 제공된 스크립트로 내려받아야 한다. 프로젝트는 MIT 라이선스로 공개됐다.

에뮬레이터는 실제 마스크 ROM과 2단계 부트로더, 수정하지 않은 애플리케이션 이미지를 실행하도록 설계됐다. S3는 성숙한 상태이며 C3와 C6는 초안 단계다. 저장소는 하드웨어와 비교한 결과로 C3에서 콘솔 208줄 중 205줄, C6에서 204줄 중 203줄이 일치했다고 보고한다. 이 비교는 연속된 사이클 단위 검증이 아니다. S3의 JTAG 비교도 지연 루프를 재동기화하고 일부 예외를 정규화하므로, 측정 조건과 테스트 범위는 테스트 안내와 각 칩의 C3 문서, C6 문서에서 확인할 수 있다.

프로젝트와 실행 방법은 GitHub 저장소에서 볼 수 있다.