himem page change delays isr
Posted: Thu Sep 09, 2021 7:05 am
I just observed, that when changing the page in the himem api with esp_himem_unmap and esp_himem_map these two calls influence the timing of an isr which is triggered by a pin level change. What is going on here?
Actually I'd like to understand what is going on and probably someone can shed some more light on this. I think it goes like this:
The above mentioned himem api calls do underneath call cache_sram_mmu_set. This call is documented to do
I did place the isr into IRAM_ATTR but not all the memory accessed by the isr is in dram. Will the above cache guards thus delay the execution of the isr because memory access is delayed by the cache guard?
As the call to cache_sram_mmu_set is performed from a low prio task. Cloud it be, that it the task is switched while the cache guard is in place which will enlarge the time the cache guard is in place?
Sorry to bother but I really do not understand the effect of that cache guard and for how long it is in effect.
Actually I'd like to understand what is going on and probably someone can shed some more light on this. I think it goes like this:
The above mentioned himem api calls do underneath call cache_sram_mmu_set. This call is documented to do
So I guess that all memory access going through the cache is somehow delayed by that call, right?It uses the SPI cache guards to make sure the MMU is idle
I did place the isr into IRAM_ATTR but not all the memory accessed by the isr is in dram. Will the above cache guards thus delay the execution of the isr because memory access is delayed by the cache guard?
As the call to cache_sram_mmu_set is performed from a low prio task. Cloud it be, that it the task is switched while the cache guard is in place which will enlarge the time the cache guard is in place?
Sorry to bother but I really do not understand the effect of that cache guard and for how long it is in effect.