Files
tinygo/targets
Ron Evans 9b1a3a2236 esp32s3: add interrupt support (#5244)
* esp32s3: add interrupt support

This finally adds the long awaited support for interrupts on the
Xtensa arch. Initially just for the ESP32-S3 but then others.

Signed-off-by: deadprogram <ron@hybridgroup.com>

* esp32s3: get interrupts working correctly

There were a number of needed changes in order to get interrupts correctly working
on the esp32s3 processor:

- PS.UM=1 in interruptInit() - routed interrupts to user exception vector (0x340)
instead of kernel (0x300)
- Inline ISR in the vector slot - external handlers via j/call0 crashed (likely
clang Xtensa literal pool issue with large movi constants in separate sections)
- Disable INTENABLE (not just INT_CLR) - the USB RX interrupt is level-triggered;
clearing INT_CLR alone causes infinite re-entry since data is still in the FIFO
- Buffered() re-enables INTENABLE after draining the hardware FIFO

Signed-off-by: deadprogram <ron@hybridgroup.com>

---------

Signed-off-by: deadprogram <ron@hybridgroup.com>
2026-04-05 14:15:40 +02:00
..
2026-01-06 23:12:02 +01:00
2025-06-13 16:19:10 +02:00
2023-05-20 21:18:02 +02:00
2022-11-06 09:05:05 +01:00
2022-11-18 18:40:38 +01:00
2023-05-20 21:18:02 +02:00
2023-05-20 21:18:02 +02:00
2023-10-01 18:32:15 +02:00
2023-06-01 21:04:36 +02:00
2022-04-23 08:45:46 +02:00
2022-04-23 08:45:46 +02:00
2025-01-20 06:15:33 +01:00
2025-01-20 06:15:33 +01:00
2025-01-20 06:15:33 +01:00
2025-01-20 06:15:33 +01:00
2023-04-26 23:07:52 +02:00
2025-01-20 06:15:33 +01:00
2020-09-09 19:17:11 +02:00
2025-09-17 05:28:06 -04:00
2021-09-05 19:59:26 +02:00
2025-09-20 08:35:34 +02:00
2025-09-17 05:28:06 -04:00
2024-05-12 16:09:27 +02:00
2021-03-04 15:46:05 +01:00
2022-07-16 08:31:22 +02:00
2022-12-16 21:26:49 +01:00
2018-10-06 13:04:14 +02:00
2019-11-16 21:57:18 +01:00
2020-10-20 19:13:43 +02:00
2022-12-16 21:26:49 +01:00
2020-10-20 19:13:43 +02:00
2022-12-16 21:26:49 +01:00
2022-12-16 21:26:49 +01:00
2018-10-18 15:07:06 +02:00
2020-07-13 12:35:53 +02:00
2020-02-18 23:34:56 +01:00
2020-02-18 23:34:56 +01:00
2020-02-18 23:34:56 +01:00
2021-03-28 21:38:05 +02:00
2023-05-09 19:44:00 +02:00
2025-09-17 05:28:06 -04:00
2023-09-18 21:58:02 +02:00
2025-09-17 05:28:06 -04:00
2018-09-22 01:51:44 +02:00
2020-12-15 06:51:35 +01:00
2026-01-06 23:12:02 +01:00
2026-01-06 23:12:02 +01:00
2026-01-06 23:12:02 +01:00
2021-03-23 08:33:59 +01:00
2022-01-13 07:56:08 +01:00
2024-04-19 20:50:00 +02:00
2020-07-08 21:58:15 +02:00
2020-11-11 18:34:47 +01:00
2024-02-23 14:00:57 +01:00
2025-09-17 05:28:06 -04:00
2025-09-17 05:28:06 -04:00
2025-09-17 05:28:06 -04:00
2025-09-17 05:28:06 -04:00