Skip to content

ISR: check for address in IRAM#5995

Merged
earlephilhower merged 2 commits intoesp8266:masterfrom
d-a-v:checkiram
Apr 19, 2019
Merged

ISR: check for address in IRAM#5995
earlephilhower merged 2 commits intoesp8266:masterfrom
d-a-v:checkiram

Conversation

@d-a-v
Copy link
Copy Markdown
Collaborator

@d-a-v d-a-v commented Apr 17, 2019

closes #5780
closes #5779

@earlephilhower earlephilhower merged commit ab12516 into esp8266:master Apr 19, 2019
@dok-net
Copy link
Copy Markdown
Contributor

dok-net commented Apr 20, 2019

Refer to the ESP32 sources' FunctionalInterrupt.cpp:
void IRAM_ATTR interruptFunctional(void* arg)

But ESP8266 FunctionalInterrupt.cpp is missing this patch:

--- a/cores/esp8266/FunctionalInterrupt.cpp
+++ b/cores/esp8266/FunctionalInterrupt.cpp
@@ -11,7 +11,7 @@ typedef void (voidFuncPtrArg)(void);
extern "C" void ICACHE_RAM_ATTR __attachInterruptArg(uint8_t pin, voidFuncPtr userFunc, void*fp , int mode);

-void interruptFunctional(void* arg)
+void ICACHE_RAM_ATTR interruptFunctional(void* arg)
{
ArgStructure* localArg = (ArgStructure*)arg;
if (localArg->functionInfo->reqScheduledFunction)

Which leaves the commited IRAM check (ab12516) firing all the time:
ISR not in IRAM!

I'm converting EspSoftwareSerial to use FunctionInterrupt in order to save the ISR table.
The PR for this is #6002.

gdsports added a commit to gdsports/i2cdevlib that referenced this pull request Jun 19, 2019
Required starting with ESP8266 board package 2.5.1

esp8266/Arduino#5995
774977826 added a commit to 774977826/nytimesv that referenced this pull request Apr 10, 2025
Required starting with ESP8266 board package 2.5.1

esp8266/Arduino#5995
culveritz added a commit to culveritz/IluhaEvdokimov4 that referenced this pull request Apr 15, 2025
Required starting with ESP8266 board package 2.5.1

esp8266/Arduino#5995
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.

interruptFunctional should be placed in IRAM

4 participants