esp32s3: improve exception handlers, add procPin/procUnpin, and linker wrap flags

Rewrite kernel and double exception handlers to save EXCCAUSE/EPC1 to
RTC STORE registers before triggering a software reset, replacing the
LED-blink diagnostic with post-mortem debug info that survives reset.

Add user exception dispatch in the level-1 handler with a weak
espradio_user_exception symbol so programs without espradio still link.

Implement procPin/procUnpin for Xtensa using RSIL/WSR PS to properly
disable interrupts during atomic operations. Fix abort() to use a
waiti loop instead of bare spin.

Add --wrap ldflags for malloc/calloc/free/realloc/ppCheckTxConnTrafficIdle
to support espradio WiFi blob integration.

Signed-off-by: deadprogram <ron@hybridgroup.com>
This commit is contained in:
deadprogram
2026-04-07 12:15:39 +02:00
committed by Ron Evans
parent c3d514a751
commit a24dc8c543
4 changed files with 126 additions and 29 deletions
+7
View File
@@ -7,6 +7,13 @@
"scheduler": "tasks",
"serial": "usb",
"linker": "ld.lld",
"ldflags": [
"--wrap=malloc",
"--wrap=calloc",
"--wrap=free",
"--wrap=realloc",
"--wrap=ppCheckTxConnTrafficIdle"
],
"default-stack-size": 8192,
"rtlib": "compiler-rt",
"libc": "picolibc",