I have a MIMXRT1050-EVK (not EVKB) and am running the 2.3.0 SDK with LWIP and FreeRTOS and developing with MCUXpresso IDE. My application is too large to fit into ITC RAM so it is placed in OC RAM. If I load the application and attempt to single step (step into or step over), nothing happens to the M7 registers except the cycle register increases by 11 - the program does not step forward, the PC does not change, etc... If I place a breakpoint further along in the code then "Resume" the code, the application hits the breakpoint; however, single stepping from the breakpoint again results in no change to the PC.
If I completely disable OCRAM caching (TypeExtField = 0, IsShareable = 0, IsCacheable = 0, IsBufferable = 0) then I can single step. Unfortunately, with OCRAM caching disabled the application does not appear to be fast enough to handle high speed USB while running FreeRTOS - interrupts are dumped to the queue faster than the application can service them. I have tried both Write Through (IsCacheable = 1, IsBufferable = 0) and Write Back (IsCacheable = 1, IsBufferable = 1) caching; neither allow me to single step in OCRAM.
This problem occurs with both the on-board debugger and an external Keil Ulink2 debugger, so I do not think it is a debugger issue.
Likewise, I do not think this is an MCUExpresso issue as I am able to single step with caching off or when the executable is in ITC.
Is there a way to single step the debugger with OCRAM cache enabled?