Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated routines in intr_alloc and cross_core to stay in IRAM #257

Closed
wants to merge 1 commit into from
Closed

Updated routines in intr_alloc and cross_core to stay in IRAM #257

wants to merge 1 commit into from

Conversation

nathanjel
Copy link
Contributor

@nathanjel nathanjel commented Jan 17, 2017

I got randomly a GuruMeditation with a IllegalInstruction while using SPI Flash commands, referring to line 164 of cache_utils.c - where spi_flash_enable_interrupts_caches_no_os() calls esp_intr_noniram_enable(). In theory the call is made after the spi_flash_restore_cache() call happens, but somehow it did not work well. Also I thought it might be better to have a function called from a IRAM function to also be in IRAM. After applying, the issues with spi_flash_* did not occur again.

There is also a fix to add another cross-core interrupt function to IRAM. It's called from an another IRAM function (vPortYieldOtherCore()) and I have encountered IllegalInstruction issues with this one as well.

@projectgus
Copy link
Contributor

Hi @nathanjel,

There have been a couple of changes on the master branch recently that relate to this (including 4676d15). Can you please try with the latest master and see if these changes are still necessary?

Thanks,

Angus

@nathanjel
Copy link
Contributor Author

Hi,

Currently on business trip. Will check on 24th Jan.

@projectgus
Copy link
Contributor

projectgus commented Feb 14, 2017

Looks like the changes for disabling/enabling interrupts have been incorporated as part of another change already.

I've cherry-picked the change that moves esp32_crosscore_int_send_yield() to IRAM and added it to our internal review queue.

@projectgus projectgus added the Status: In Progress Work is in progress label Feb 14, 2017
@nathanjel
Copy link
Contributor Author

Thanks, this is perfect.

igrr added a commit that referenced this pull request Feb 15, 2017
esp32: Move esp_crosscore_int_send_yield() to IRAM

Merges PR #257 #257

See merge request !502
@projectgus
Copy link
Contributor

Merged in 174c313

@projectgus projectgus closed this Feb 15, 2017
0xFEEDC0DE64 pushed a commit to 0xFEEDC0DE64/esp-idf that referenced this pull request May 5, 2021
* Add Sketch Update Library

* Add MDNS Library

* Add Arduino OTA Library

* add missing library file

* Add library files for Update

* Add missing headers

* fix ota command

* Add espota binary

* remove bad example

* PlatformIO does not auto forward declare methods like Arduino Builder
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Status: In Progress Work is in progress
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants