Hi All,
Having difficulty in tyring to create counting semaphores in PIC24 port.
SemaphoreHandle_t xCountingSemaphore;
xCountingSemaphore = xSemaphoreCreateCounting(5,0);
The above lines generate the following errors: (...can't see anything to configure in FreeRTOSConfig.h i.e configSUPPORTDYNAMICALLOCATION is not defined)
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
build/default/production/ext/1472/mainInterruptBinSemaTut.o(.text+0x8c): In function .L0':
: undefined reference toxQueueCreateCountingSemaphore'
build/default/production/ext/1472/mainInterruptBinSemaTut.o(.text+0x8e): In function .L0':
: undefined reference to_xQueueCreateCountingSemaphore'
make[2]: *** [dist/default/production/FreeRTOSTutorial.X.production.hex] Error 255
make[1]: *** [.build-conf] Error 2
make: *** [.build-impl] Error 2
BUILD FAILED (exit value 2, total time: 3s)
Thanks
If you look at the implementation of xQueueCreateCountingSemaphore() you will see it is guarded by:
#if( ( configUSE_COUNTING_SEMAPHORES == 1 ) && ( configSUPPORT_DYNAMIC_ALLOCATION == 1 ) )
Do you have both configUSECOUNTINGSEMAPHORES and configSUPPORTDYNAMICALLOCATION set to 1?
Hi, Thanks for getting back.
No, configUSECOUNTINGSEMAPHORES and configSUPPORTDYNAMICALLOCATION do not appear to be declared anywhere...or at least i could't find them.
Should I define and set them in FreeRTOSConfig.h ?
Cheers
Only if you want to use counting semaphores.
OK, thanks Dave
Hi All,
Counting semaphores are now OK...having trouble compling Mutex:
SemaphoreHandle_t xMutex; xMutex = xSemaphoreCreateMutex();
configSUPPORTDYNAMICALLOCATION is set to 1 in FreeRTOSConfig.h ...and i think that is all that is needed in semphr.h
Cheers
nbproject/Makefile-impl.mk:39: recipe for target '.build-impl' failed
build/default/production/ext/1472/mainMutex1Tut.o(.text+0x50): In function .L0':
: undefined reference to_xQueueCreateMutex'
build/default/production/ext/1472/mainMutex1Tut.o(.text+0x52): In function .L0':
: undefined reference to_xQueueCreateMutex'
Either search for the word "Mutex" on the configuration options web page (http://www.freertos.org/a00110.html), or search for xQueueCreateMutex in the source code (the "queue" in the function name tells you it is implemented in queue.c) - then you will be able to answer your own question.
OK, needed to declare and set configUSE_MUTEXES, all fine now Thank you so much