Skip to content

fix(isr): prevent WiFi blob from clearing unowned INTENABLE bits#46

Open
deadprogram wants to merge 1 commit into
mainfrom
irq-fix
Open

fix(isr): prevent WiFi blob from clearing unowned INTENABLE bits#46
deadprogram wants to merge 1 commit into
mainfrom
irq-fix

Conversation

@deadprogram
Copy link
Copy Markdown
Member

@deadprogram deadprogram commented Jun 5, 2026

espradio_ints_off passed the blob's cpu_int mask straight to INTENABLE, which could clear bits TinyGo owns (bit 10 = GPIO, bit 9 = timer alarm). After WiFi init, GPIO SetInterrupt callbacks would silently stop firing.

  • ints_on/ints_off (esp32s3) now only touch ESPRADIO_WIFI_CPU_INT (bit 12)
  • add espradio_mark_wifi_isr_slot() to track slots registered via set_intr
  • espradio_call_wifi_isr() iterates only those tracked slots instead of calling all 32

Should address #40

Base automatically changed from lneto-prob to main June 5, 2026 08:25
espradio_ints_off passed the blob's cpu_int mask straight to INTENABLE,
which could clear bits TinyGo owns (bit 10 = GPIO, bit 9 = timer alarm).
After WiFi init, GPIO SetInterrupt callbacks would silently stop firing.

- ints_on/ints_off (esp32s3) now only touch ESPRADIO_WIFI_CPU_INT (bit 12)
- add espradio_mark_wifi_isr_slot() to track slots registered via set_intr
- espradio_call_wifi_isr() iterates only those tracked slots instead of
  calling all 32

Should address #40

Signed-off-by: deadprogram <ron@hybridgroup.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant