I’m using FreeRTOS for a new, ARM-based project. As part of the initial stages I’ve been putting together a shim to allow PC-based code development to the FreeRTOS API, using wrappers around pthreads library calls for the task/queue implementation.
One of several potential issue I’ve found is that the output pvBuffer parameter passed to xQueueGenericReceive() is, it would appear, incorrectly declared as a const pointer to const data. In the API documentation, xQueueReceive()/xQueuePeek() take a void* (although it should probably be a const pointer to non-const data).
As a result, the implementation of xQueueGenericReceive() has to do some casts in the memcpy() call. Am I correct in assuming this is by oversight rather than design?