Port is portable/GCC/ARMCM3MPU.
Build error (with portUSINGMPUWRAPPERS == 1)
FreeRTOSv9.0.0/FreeRTOS/Source/include/portable.h:199:34: error: unknown type name 'xMPU_SETTINGS'
Output from cscope for name "xMPUSETTINGS":
0 FreeRTOS.h 936 xMPUSETTINGS xDummy2;
1 portable.h 199 void vPortStoreTaskMPUSettings( xMPUSETTINGS *xMPUSettings,
const struct xMEMORYREGION * const xRegions, StackTypet
*pxBottomOfStack, uint32t ulStackDepth )
2 port.c 614 void vPortStoreTaskMPUSettings( xMPUSETTINGS *xMPUSettings,
const struct xMEMORYREGION * const xRegions, StackType_t
3 tasks.c 298 xMPU_SETTINGS xMPUSettings; /*< The MPU settings are
defined as part of the port layer. THIS MUST BE THE SECOND
When I get a 'NNN' undefined message the first thing I do is grep (or
equivalent) the source tree. Within a few seconds that shows me where
'NNN' is defined, or not as the case may be. In this case it showed me
that xMPU_SETTINGS is defined in the portmacro.h header file for the MPU
ports - so my first question back to yourself is - are you certain you
are including the correct portmacro.h file. Check the compiler options
to make sure that the path to the MPU version of portmacro.h is in the
compiler's include path.
I needed to adjust the includes macro in the Makefile. I use cscope which is a glorified
grep utility. I admit that I should have checked this before posting.
Well here is the real question about the Memory Protection Unit part of the port
for the Cortex-M3. Is it as easy as making the following changes. For me the it appears
that none of the tasks start running. Otherwise, when I back out these changes below
everything runs perfectly.
#define portUSINGMPUWRAPPERS 1
SRC += mpu_wrappers.c