2.4 KiB
2.4 KiB
test-esp32-p4 — investigación de soporte ESP32-P4 en Velxio
Sandbox de investigación para evaluar si el chip Espressif ESP32-P4 puede sumarse a Velxio como board emulable.
Contexto
Velxio hoy tiene dos vías de emulación:
- Frontend (browser) — JS puro / WASM. Cubre AVR (
avr8js) y RP2040 (rp2040js). - Backend WebSocket → QEMU — proceso QEMU por cliente, UART y GPIO chardev sobre TCP. Cubre ESP32, ESP32-S3 (Xtensa) y ESP32-C3 (RISC-V).
Ver backend/app/services/esp_qemu_manager.py para el pattern actual.
Estructura
test-esp32-p4/
├── README.md # este archivo
├── autosearch/ # hallazgos, qué funciona / qué no
│ ├── 01_findings.md
│ ├── 02_chip_overview.md
│ ├── 03_compilation_test.md
│ ├── 04_qemu_backend_path.md
│ ├── 05_frontend_emulation_path.md
│ └── 06_recommendations.md
├── sketches/blink/blink.ino # sketch mínimo Arduino para esp32:esp32:esp32p4
├── binaries/ # outputs de compilación (gitignore-able)
└── scripts/ # scripts de test (vacío)
TL;DR
- ✅ Compilación funciona con
arduino-cli+ coreesp32:esp32 3.3.8. FQBNesp32:esp32:esp32p4produce ELF RISC-V 32-bit (RVC, single-float ABI) ymerged.binde 4 MB. - ❌ No hay máquina QEMU para ESP32-P4 en
espressif/qemu(último releaseesp-develop-9.2.2-20260417). Soporte es "To Do" — ver issue #127. - ❌ No hay emulador JS/WASM open-source del ESP32-P4. Wokwi tiene simulador beta cerrado (
board-esp32-p4-preview); su engine no es público. - ⚠️ La vía realista de hoy es esperar el merge de la máquina P4 en
espressif/qemuy, mientras tanto, dejar la pieza de toolchain (compilación + flashing args) lista en backend y agregar el board element visual (placeholder) en frontend.
Detalles: autosearch/06_recommendations.md.
Reproducir el test de compilación
cd test/test-esp32-p4/sketches
arduino-cli core install esp32:esp32 # si no está instalado
arduino-cli compile --fqbn esp32:esp32:esp32p4 blink
ls blink/build/esp32.esp32.esp32p4/
# blink.ino.elf, blink.ino.bin, blink.ino.merged.bin (4 MB), bootloader, partitions
file blink/build/esp32.esp32.esp32p4/blink.ino.elf
# → ELF 32-bit LSB executable, UCB RISC-V, RVC, single-float ABI