Cortex M7 with MPU features enabled

jtbr wrote on Thursday, April 27, 2017:


I’m using FreeRTOS v9.0.0 on a SAMV71 board. Things are working fine without the MPU enabled. However when I enable the MPU on the chip, with sensible defaults for the various memory regions (as set by Atmel’s software framework), then I get the Dummy interrupt handler firing as soon as the scheduler starts (I’m guessing this should really be the timer interrupt).

I noticed there are some MPU extensions to FreeRTOS, but only the M3/M4 are explicitly mentioned. For the moment I don’t expect to use the restricted task features. The reason I want to enable the MPU is to be able to selectively enable/disable caching for different regions of memory. (At the moment I need to disable caching entirely in order to support ethernet).

Probably there is something simple I’m missing. Is this supported by FreeRTOS?

Many thanks

jtbr wrote on Thursday, April 27, 2017:

There was indeed something I was missing - I had omitted a line from the linker script and so the variables not to be cached were being placed who knows where. That’s why the dummy handler went off, it was a memory management fault; no errors occurred without the MPU enabled, but it turns out it wasn’t working properly either as a result of the omission. So, nevermind. FreeRTOS is working fine with the MPU enabled.

rtel wrote on Thursday, April 27, 2017:

Thanks for taking the time to report back.