Queue handle becoming NULL

palz84 wrote on Wednesday, January 30, 2013:

Hi all,

I created a queue using xQueueCreate API inside main function where it is successfully created. But when i check the same queue handle inside the TasK it is NULL.

Here is the code details.

------ In FreeRTOSConfig.h ------
#define configMINIMAL_STACK_SIZE ( ( unsigned short ) 1000 )
#define configTOTAL_HEAP_SIZE ( (size_t) (80 * 1024) )

------ Inside Main d=function ------
        g_hRcvQueue0 = xQueueCreate( 128, ( unsigned portBASE_TYPE ) sizeof( signed char ) );
if(g_hRcvQueue0 == NULL)
xil_printf("\r\ng_hRcvQueue0 creation failed") ;

------ Inside RcvTask ------
        if(g_hRcvQueue0 == NULL)
xil_printf("\r\ng_hRcvQueue0 creation failed") ;

Even though g_hRcvQueue0 (queue handle) is declared as global it becomes NULL when i checked it inside the tasks.
I don’t know the reason why it become NULL.

davedoors wrote on Wednesday, January 30, 2013:

It must be getting overwritten somewhere. Add the variable to the expressions window (or whichever window allows you to see its value) then step over the code in the debugger until you see the value change. What is the code doing when the value changes to NULL?