Serial Read FreeRTOS v6 on ColdFire MCF5213

fabianwork wrote on Thursday, February 25, 2010:

Hello everybody !

I’ve just updated my FreeRTOS from v3 to v6. A big step !!
Everything work fine except serial ports. I’ve tried to use my serial.c files from FreeRTOS V3.2.3 and my ColdFire connected to a GPS. But instead of reveiving :
$GPRMC,144253.75,A,4853.09651,N,00246.358160,E,0.116,9.96,230309,A*7F<\r><\n>
I receive
$ G \r \n $ G M \r \n $ P \r \n $ R M C \r \n $ G P \r \n …
I don’t understand why!

I’ve also tried with the serial.c file from FreeRTOS V6.0.2 but it doesn’t work. I’ve run the debugger but it stay blockeb on  

signed portBASE_TYPE xSerialGetChar( xComPortHandle pxPort, signed portCHAR *pcRxedChar, portTickType xBlockTime )
{
	/* Only one port is supported. */
	( void ) pxPort;
	/* Get the next character from the buffer.  Return false if no characters
	are available or arrive before xBlockTime expires. */
	if( xQueueReceive( xRxedChars, pcRxedChar, xBlockTime ) )
	{
>>>>> return pdTRUE;                                      <<<<<<<<<< BLOCKED HERE 
	}
	else
	{
		return pdFALSE;
	}
}

Does anyone has an idea of what we can do to resolve the problem and work with new versions of FreeRTOS ?

Thank you very much for you help !!

davedoors wrote on Thursday, February 25, 2010:

One thing to watch out for is the change that was made to xQueueSendFromISR(). This is going back in time some now and this is the only reference I can find to the change (from the history log).

*** VERY IMPORTANT INFORMATION ON UPGRADING TO FREERTOS.ORG V5.0.0 ***

The parameters to the functions xQueueSendFromISR(), xQueueSendToFrontFromISR(),
xQueueSendToBackFromISR() and xSemaphoreGiveFromISR() have changed.  You must
update all calls to these functions to use the new calling convention!  Your
compiler might not issue any type mismatch warnings!

rtel wrote on Thursday, February 25, 2010:

This is what you are referring to:
http://www.FreeRTOS.org/upgrading.html

Regards.

fabianwork wrote on Thursday, February 25, 2010:

Thank you for your very fast answer!
But I’ve already done all this things and it’s still don’t work.
What other things can I do please ?
Thank you.
Regards.

fabianwork wrote on Monday, March 08, 2010:

Hello,

Does anyone has an idea for my problem ?

Thank you, regards

fabianwork wrote on Thursday, August 05, 2010:

Hello,

Any idea about my problem ?

Thank you.

richard_damon wrote on Thursday, August 05, 2010:

Perhaps if you posted more of the code, like the ISR that is filling the queue someone might see something.

Another point would be could the task reading from the queue be too slow and missing most of the characters?

fabianwork wrote on Tuesday, August 24, 2010:

Hello! Thank you for the answer.
Where can I copy/past the ISR to here ?
The task should no be too slow for the serial COM, it use to work normally with FreeRTOS v3
Thank you