Files
xteink-web-emulator/Makefile
T
2026-07-19 19:23:51 -04:00

42 lines
1.3 KiB
Makefile

# PlatformIO artifacts to merge into a 16 MB ESP32-C3 flash image.
# Canonical firmware: https://github.com/crosspoint-reader/crosspoint-reader
FIRMWARE_DIR ?= ../crosspoint-reader/.pio/build/default
SD_SRC ?= ../crosspoint-reader/sdcard
QEMU_SRC ?= _scratch/qemu-src
QEMU_BIN = $(QEMU_SRC)/build/qemu-system-riscv32
.PHONY: firmware sdimage qemu run run-upstream chip clean
firmware:
esptool --chip esp32c3 merge-bin -o flash.bin \
0x0 $(FIRMWARE_DIR)/bootloader.bin \
0x8000 $(FIRMWARE_DIR)/partitions.bin \
0x10000 $(FIRMWARE_DIR)/firmware.bin
truncate -s 16M flash.bin
cp $(FIRMWARE_DIR)/firmware.elf firmware.elf
# Local-disk implementation of the SD block interface.
sdimage:
scripts/mksd.sh $(SD_SRC) sd.img
qemu:
QEMU_SRC=$(QEMU_SRC) scripts/build-qemu.sh
# Patched xteink X3 machine. Add `-display none` for a headless run.
run: qemu
$(QEMU_BIN) -machine xteink-x3 -L $(QEMU_SRC)/pc-bios \
-serial stdio -drive file=flash.bin,if=mtd,format=raw \
$(if $(wildcard sd.img),-drive file=sd.img,if=sd,format=raw)
# Unpatched release binary retained as the fast generic ESP32-C3 baseline.
run-upstream:
nix run .#run-upstream -- flash.bin
# Legacy Wokwi protocol model; retained as a small host-tested reference.
chip:
$(MAKE) -C chip
clean:
$(MAKE) -C chip clean
rm -f flash.bin flash16.bin firmware.elf