ESP32-S3 Baremetal Support

Build settings

Everything is a make variable with a sensible default, so there is no config file and nothing to generate:

Variable Default What it is
TOOLCHAIN found automatically Directory holding xtensa-esp32s3-elf-gcc
ESPTOOL found automatically esptool used to build and write the image
PYTHON found automatically Only used by make monitor
PORT per platform Serial port the board appears as
BAUD 460800 Flashing speed
FLASH_MODE / FLASH_FREQ / FLASH_SIZE dio / 80m / 4MB How the ROM reads the image
make TOOLCHAIN=D:/some/other/bin PORT=COM7 flash

Windows: keep the toolchain path space-free

Install the toolchain somewhere like C:\Espressif, not C:\Users\<name>\.espressif. A space anywhere in the toolchain path makes build systems fall back to DOS 8.3 short names, which mangles the compiler's own filename from xtensa-esp32s3-elf-gcc.exe to something like XT34AB~1.EXE. The multi-target Xtensa driver picks its chip config from its own filename, so once mangled it fails with:

cc1.exe: fatal error: Both 'XTENSA_GNU_CONFIG' and "-dynconfig=" specified
but pointed different files

For the same reason, run make from inside the project directory rather than with make -C: relative paths keep the project's own path, which may well contain a space, out of every rule.