Skip to content

2.5.0 SPIFFS fatal crash with Illegal Instruction on call to millis() within interrupt handler #5788

Closed
@ks12

Description

@ks12

Basic Infos

  • [ x] This issue complies with the issue POLICY doc.
  • [ x] I have read the documentation at readthedocs and the issue is not addressed there.
  • [ x] I have tested that the issue is present in current master branch (aka latest git).
  • [ x] I have searched the issue tracker for a similar issue.
  • [ x] If there is a stack dump, I have decoded it.
  • [ x] I have filled out all fields below.

Platform

  • Hardware: ESP 12E on Nodemcu 1.0
  • Core Version: 2.5.0
  • Development Env: Arduino IDE
  • Operating System: Windows

Settings in IDE

  • Module: Nodemcu
  • Flash Mode: qio
  • Flash Size: 4MB/1MB]
  • lwip Variant: v2 Higher Bandwidth (no features)
  • Reset Method: --
  • Flash Frequency: --
  • CPU Frequency: 80Mhz
  • Upload Using: OTA
  • Upload Speed: --

Problem Description

In 2.5.0 core, I am facing recurrent ESP crashes at the millis() line of the code:

void doCnt() // This is an interrupt handler function
{
if ((millis() - CntLMillis) > cntBounce) // << This line of code
{
CntLMillis = millis();
checkCnt = true;
}
}

The crash decode shows that its a Fatal Exception 0 - Illegal Command.
millis() is the only command on that line.
The stack shows a lot of SPIFFS activity then a esp_yield and then this crash.

I think it has something to do with interrupt handling along with SPIFFS activity. I cannot stop my interrupt captures during SPIFFS writes, due to application requirements.

I upgraded from the 2.4.2 core to 2.5.0.
My same sketch was very stable in the older core.

After I shifted to the older code, things are stable again.

Metadata

Metadata

Assignees

No one assigned

    Labels

    waiting for feedbackWaiting on additional info. If it's not received, the issue may be closed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions