PIC24 counting semaphores:

Posted by paraparvy on July 3, 2016

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


PIC24 counting semaphores:

Posted by rtel on July 3, 2016

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?


PIC24 counting semaphores:

Posted by paraparvy on July 4, 2016

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


PIC24 counting semaphores:

Posted by davedoors on July 4, 2016

Only if you want to use counting semaphores.


PIC24 counting semaphores:

Posted by paraparvy on July 4, 2016

OK, thanks Dave


PIC24 counting semaphores:

Posted by paraparvy on July 4, 2016

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'


PIC24 counting semaphores:

Posted by rtel on July 4, 2016

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.


PIC24 counting semaphores:

Posted by paraparvy on July 4, 2016

OK, needed to declare and set configUSE_MUTEXES, all fine now Thank you so much