Эмулятор микроконтроллера ESP32 с графическим интерфейсом на Qt. Позволяет разрабатывать, отлаживать и визуализировать поведение встроенных приложений без физического устройства.
-
Графический интерфейс на Qt 6
- Панель управления:
Start,Stop,Step - Вкладка Code — редактор с подсветкой синтаксиса C++ и файловой структурой проекта
- Вкладка Schematic — визуальное проектирование схемы (в разработке)
- Док-панель Protocol Log — вывод логов эмуляции
- Док-панель Registers & Memory — инспекция состояния CPU и памяти
- Панель управления:
-
Ядро эмулятора на C++
- Цикл эмуляции с тактовой точностью (APB = 80 МГц)
- Поддержка двухъядерной архитектуры Xtensa LX6 (PRO_CPU / APP_CPU)
- Динамическая карта памяти с регионами IRAM, DRAM, IROM, DROM
- Загрузка прошивок в формате ELF
- Модель периферии с временным поведением (UART, таймеры и др.)
- Планировщик событий для асинхронных операций
-
Управление проектами
- Создание нового ESP32-проекта через контекстное меню
- Автоматическая генерация стандартной структуры (
src/main.cpp,include/) - Работа с файловой системой проекта: создание файлов и папок, редактирование с автосохранением
ESP32Emulator/
├─ src/
│ ├─ main.cpp
│ ├─ mainwindow.h/cpp/ui
│ ├─ emulatorcore.h/cpp
│ ├─ xtensacpu.h/cpp
│ ├─ memorymap.h/cpp
│ ├─ firmwareloader.h/cpp
│ ├─ peripheralcomponent.h/cpp
│ └─ cpphighlighter.h/cpp
├─ fritzing-parts/ # библиотека компонентов для схемы
├─ CMakeLists.txt # или .pro — в зависимости от сборки
└─ README.md
- Установите Qt 6.x с MinGW 64-bit.
- Откройте проект в Qt Creator (
CMakeLists.txtили.pro). - Соберите и запустите.
- Создайте новый проект через контекстное меню → New Project.
- Используйте кнопки
Start/Stop/Stepдля управления эмуляцией.
- Реализация полной эмуляции периферийных модулей (UART, SPI, I2C, GPIO, TIMG)
- Поддержка OTA-обновлений и динамической переконфигурации MMU
- Интеграция с IDF-совместимыми скетчами
- Интерактивная схема с drag-and-drop компонентов и проводников
- Отладчик: точки останова, просмотр стека вызовов, изменение регистров
Distributed under the MIT License. See LICENSE for more information.