Hi Nathan
there is no need to flush/invalidate caches. WFI just disables
core clock.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
My experience with the iMXRT1064 is that the instruction cache is corrupted whilst in WFI.
I don't think it is supposed to, so I currently consider this to be a processor bug.
In our system we issue a WFI in the background task. If the cache is enabled then when awoken from WFI we get a hard fault (IACCVIOL) when the processor attempts to execute from a non-existent address.
Our solution is to disable the I-cache before the WFI instruction and then to invalidate and reenable the cache when task switching away from the background task.
This seems to work.
Other solutions are either not to use WFI or disable the instruction cache.
Hi Nathan
there is no need to flush/invalidate caches. WFI just disables
core clock.
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------