hengblom wrote on Tuesday, July 26, 2016:
Hi,
First I’m new to this forum, don’t know if this question belongs here.
I’ve been working with FreeRTOS for a couple of years now, and I think it is great.
However, I’m having problems building ARM CortexM3, the MPU vairant, for FreeRTOS 9.0.0, with GCC
First there seem to be a “BIT” (With an underscore before but that is for some reason interpreted as a “start of italic” here…) missing in the end of line 176 in portable/GCC/ARMCM3_MPU/portmacro.h
But after having fixed that, there are still some problems. I also run completely static memory allocation, new to 9.0.0, and as long as I don’t use MPU, that works fine. However the MPU variant don’t seem to be completely compliant to an entirely static memory allocation. It complains about this:
Linking build_rls_11/SW0033-11v03pre.elf
build_rls_11/FreeRTOS/tasks.o: In function xTaskCreateRestricted': /opt/repos/git/src/SW/SW0033-GenIV_TX/09_11-TigerGenIV_MidiJoystick_CPU1/src/FreeRTOS/tasks.c:643: undefined reference to
pvPortMalloc’
And looking in the code, it seems FreeRTOS cannot run completely static in the MPU-case:
xTaskCreateRestricted() calls pvPortMalloc() and there don’t seem to be a xTaskCreateRestrictedStatic(). Neither can I find any config-option in FreeRTOSConfig.h that disables this function if i run MPU. (I don’t think I need xTaskCreateRestricted() , I’ll use xTaskCreateStatic() instead, so it’s not a big problem for me, I can just put “#if 0” around it)
Has anyone else run in to the same problem, or is it me that has missed to configure something ?
Should I write a new bug-ticket about this ?
br Håkan