passing a queuehandle_t pointer?

I’m trying to create a queue to communicate between 2 tasks, But passing a pointer to a task seems to crash it. The following code seems to work fine. ~~~ QueueHandle_t queue = xQueueCreate(10, sizeof(int); if( uxQueueMessagesWaiting(queue) ) { // a message } else { // no message } ~~~ But having a pointer seems to let my program crash. ~~~ QueueHandlet queue = xQueueCreate(10, sizeof(int); QueueHandlet pqueue = &queue; if( uxQueueMessagesWaiting(pqueue) ) { // a message } else { // no message } ~~~ which is the same as passing it to a task using pvparameters. ~~~ void Thread(void *pvParameters) { QueueHandle_t *handle = (QueueHandle_t)pvParameters; if( uxQueueMessagesWaiting(handle) ) { ~~~ What am i doing wrong, comparing my code to examples I dont see any strange difference.

passing a queuehandle_t pointer?

QueueHandle_t queue = xQueueCreate(10, sizeof(int); if( uxQueueMessagesWaiting(queue) ) { // a message } else { // no message }
In this case, the type of the parameter you are passing to uxQueueMessagesWaiting() is a QueueHandle_t, which is correct.
But having a pointer seems to let my program crash. QueueHandlet queue = xQueueCreate(10, sizeof(int); QueueHandlet *pqueue = &queue; if( uxQueueMessagesWaiting(pqueue) ) { // a message } else { // no message }
In this case, the type of the parameter you are passing to uxQueueMessagesWaiting() is a pointer to a QueueHandle_t, which is not correct.
which is the same as passing it to a task using pvparameters.
If you want to pass a QueueHandle_t into another task using the task parameter then pass it directly, as a value. For example: xTaskCreate( a, b, c, ( void * ) queue, x, y, z ); Then just cast it back to a QueueHandle_t within the created task. Alternatively you could pass a pointer to the queue, then deference the pointer at the other end to get back to the queue, but that is not necessary. [this is a C question really]

passing a queuehandle_t pointer?

Doh, I was thinking way to hard on this one. Thx for the great answer!