mirror of
https://github.com/liquidraver/ZephCore.git
synced 2026-09-02 17:33:43 +00:00
TX_WAIT_THREAD_STACK_SIZE was 1024 bytes, shared by every radio adapter. On Xtensa (all ESP32/S3 boards) the windowed ABI needs ~3x the stack of Cortex-M for the same code — Zephyr's own Kconfig defaults reflect this (IDLE_STACK_SIZE: 1024 if XTENSA vs 320 ARM). Measured peak usage on Heltec V4 (immediate-mode logging, full TX cycle including startReceive/lora_config): 1252 bytes — already past the old 1024 limit. The overflow corrupts the exception frame and parks CPU0 in _DoubleExceptionVector (LoadProhibited @0x2c), a silent total freeze at boot. Confirmed via the S3 built-in USB-JTAG: current thread at crash = lora_tx_wait. 2048 gives ~39% headroom over the measured worst case.