Skip to content

Place ESP8266 timer ISR paths in IRAM - #26

Open
realholgi wants to merge 1 commit into
soligen2010:masterfrom
realholgi:master
Open

Place ESP8266 timer ISR paths in IRAM#26
realholgi wants to merge 1 commit into
soligen2010:masterfrom
realholgi:master

Conversation

@realholgi

Copy link
Copy Markdown

Problem

ClickEncoder::service() is intended for timer-ISR use, but on ESP8266 it and the helper reached from its button path are linked into flash. When the ESP8266 flash cache is temporarily disabled, an active timer1 ISR can fault while executing that code.

Change

Add an ESP8266-only IRAM_ATTR macro and apply it to ClickEncoder::service() and ClickEncoder::getPinState(). Other platforms retain their existing placement.

Verification

Built and exercised the change on ESP8266 hardware. Ten consecutive History-page navigation cycles—which previously reliably triggered Illegal instruction in ClickEncoder::service() from timer1_isr_handler—completed without a reset.

│ ESP8266 ISR paths in IRAM
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