Interruption Priority Problem

gaboxv wrote on Wednesday, April 28, 2010:

Hello!

I´m working with the Free RTOS with the PIC32 and i´m triying to use UART RX interruptions to listen to a printer command response, but i´m having the fallowing problem:

The main routine runs the fallowing code:

SYSTEMConfig(GetSystemClock(), SYS_CFG_WAIT_STATES | SYS_CFG_PCACHE);
INTEnableSystemMultiVectoredInt();

/*Hardware initialization*/
InitializeBoard();

/*Synchonization objects initialization*/
InitializeSystemObjects();

/*Temporal section with tests of libraries outside of the RTOS environment*/
PrinterDemo();
/***********/

/*Creation of application tasks*/
InitializeTask();
//INTEnableInterrupts();
/* Finally start the scheduler. */
vTaskStartScheduler();

The Interrupt priority for UART RX was 1 and the code executed until a breakpoint in InitializeTask(); but the printer demo, that receives a byte for printer status didnt received anything.

But when I commented the function InitializeSystemObjects(); the I didnt have problems receiving the byte trough RX UART Interruption.

the InitializeSystemObjects() code:
{
_lcmQueue = xQueueCreate( LCM_TASK_QUEUE_DEEP, sizeof( xLCDMessage ));
_actionButtonQueue = xQueueCreate( ACTION_BUTTON_QUEUE_EVENTS_DEEP, sizeof( ActionButtonEvent ));
vSemaphoreCreateBinary( _i2C1Semaphore);
}

And Finally, if I increment the Interrupt Priority for the RX interruption to 4 it works fine.

Can someone help me with this issue?
Why isnt the UART interruption working even when the scheduler didnt started yet and moreover why I have to use such a high priority when I initialize thos system Objects?

Thanks in advance