Hi Guys - A minor nit but I know you try hard to make all your code compile clean.
I get warnings about two implicit declarations (everything else compiles without warnings).
Details below.
Thanks as always,
Best Regards, Dave
Invoking: Cross ARM C Compiler
arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=hard -mfpu=fpv4-sp-d16 -O0 -fmessage-length=0 -fsigned-char -ffunction-sections -fdata-sections -Wall -Wextra -g3 -D"CPU_MK64FN1M0VDC12" -DUSB_STACK_FREERTOS -DHSB_BUILD_WPA -I../source -I../CMSIS -I../Generated_uC_setup -I../board -I../drivers -I../freertos/Source/include -I../freertos/Source/portable/GCC/ARM_CM4F -I../startup -I../utilities -I"E:/Cap/MFW2/MFW2_firmware/USB/include" -I"E:/Cap/MFW2/MFW2_firmware/USB/device/include" -I"E:/Cap/MFW2/MFW2_firmware/USB/device/class" -I"E:/Cap/MFW2/MFW2_firmware/USB/osa" -I"E:/Cap/MFW2/MFW2_firmware/USB/device/class/cdc" -I"E:/Cap/MFW2/MFW2_firmware/USB/device/source" -I"E:/Cap/MFW2/MFW2_firmware/USB/device/source/khci" -std=gnu99 -Wno-unused-parameter -MMD -MP -MF"FreeRTOS/Source/portable/Common/mpu_wrappers.d" -MT"FreeRTOS/Source/portable/Common/mpu_wrappers.o" -c -o "FreeRTOS/Source/portable/Common/mpu_wrappers.o" "../FreeRTOS/Source/portable/Common/mpu_wrappers.c"
../FreeRTOS/Source/portable/Common/mpu_wrappers.c: In function 'MPU_xTaskCreateRestricted':
../FreeRTOS/Source/portable/Common/mpu_wrappers.c:104:2: warning: implicit declaration of function 'xTaskCreateRestricted' [-Wimplicit-function-declaration]
xReturn = xTaskCreateRestricted( pxTaskDefinition, pxCreatedTask );
^
../FreeRTOS/Source/portable/Common/mpu_wrappers.c:105:2: warning: implicit declaration of function 'vPortResetPrivilege' [-Wimplicit-function-declaration]
vPortResetPrivilege( xRunningPrivileged );
^
Hi Dave - thanks for taking the time to report this.
I’ve just compared the head revision of mpu_wrappers.c with the revision
from the FreeRTOS V9.0.0 release and it looks like this has already been
picked up as MPU_xTaskCreateRestricted() is now only compiled if
configSUPPORT_DYNAMIC_ALLOCATION is set to 1.
I am getting these same warnings, compiling freshly-downloaded FreeRTOS 10.0.0 with target GCC/ARM_CM4F. Shouldn’t these prototypes be declared in task.h?
Edit: looks like xTaskCreateRestricted does get declared in task.h, but only if portUSING_MPU_WRAPPERS=1 is defined. Where is that macro supposed to be defined?
Is this also the case in FreeRTOS V10.0.1? If so, please describe how
to replicate the problem (e.g. which port are you using, what are
configSUPPORT_DYNAMIC_ALLOCATION and configSUPPORT_STATIC_ALLOCATION set
to, and any other relevant configuration items).
From the looks of it you are not using code provided by us, but from a
third party, so we can only provide general assistance and ideas as we
are not familiar with the code you are building (mpuwrappers.c).
These warnings are nothing to do with static or dynamic allocation, but
with whether or not you are using a FreeRTOS port that support memory
protection or not. I’m not aware of a port for the ATMega that has
memory protection, and in fact are not aware that any ATMega parts even
have memory protection unit - so I think you are just building the wrong
files for that target.
I got it. It’s a compressed version of FreeRTOS, directly downloaded from sourceforge.net. I took only what it was needed it to make it work from the ATMega323 official port, and it works! Perhaps it’s important to mention that this port is using heap_3.c. Maybe you want to take a look the files that are been compiled, please see the attached pic.
As others have said, such situation isn’t critical, but I read that you like clean compilations.