undefined reference to ‘_xQueueCreateMutex’

Dear Support, I’ve been evaluating the RTOS on the PIC24 platform and have been impressed. I’ve got tasks with priorities, messages queues, critical sections etc. I wanted to have a play with a Mutex but the linker does not seem to like xSemaphoreCreateMutex() even though it is happy with my later use of xSemaphoreGive() and xSemaphoreTake() in the same file. Maybe I’ve missed a header file or a defintion somewhere but I’m stuck. /* My includes */ include “FreeRTOS.h” include “task.h” include “semphr.h” include “queue.h” /* My Mutex handle */ static SemaphoreHandle_t MutexHandle_AppTestLED = NULL; /* My Mutex creation */ void vApplicationMutex(void) { MutexHandle_AppTestLED = xSemaphoreCreateMutex(); } // Error thrown by the linker… : In function _vApplicationMutex': : undefined reference toxQueueCreateMutex’ build/default/production/ext/1472/ApplicationTask.o(.text+0x12): In function _vApplicationMutex': : undefined reference to_xQueueCreateMutex’ The function xSemaphoreCreateMutex() is in blue in the project, showing it is recognize as a function and ‘Navigate to defintion’ opens the file semphr.h at the extract below ( where the section is active in the compilation ). if( configSUPPORTDYNAMICALLOCATION == 1 ) define xSemaphoreCreateMutex() xQueueCreateMutex( queueQUEUETYPEMUTEX ) endif Please can you help ? Kind regards, Ady

undefined reference to ‘_xQueueCreateMutex’

Is configUSE_MUTEXES set to 1 in FreeRTOSConfig.h?

undefined reference to ‘_xQueueCreateMutex’

Many thanks that has solved it. In fact configUSE_MUTEXES was not in FreeRTOSConfig.h at all else I would have given it a try ! I’d expect all configurable options to be in this file ?

undefined reference to ‘_xQueueCreateMutex’

That is quite an old demo, perhaps even created before there were mutexes? http://www.freertos.org/a00110.html

undefined reference to ‘_xQueueCreateMutex’

OK fair enough. I used the demo to get up and running, I’ll look for the latest FreeRTOS source.