lwIP_Demo_Rowley_ARM7 and CDC receiving byte

stevemuller wrote on Wednesday, August 13, 2008:

Hi,

I am new to FreeRTOS. Seems to be a great OS.
I try to modify the demo code to have a simple ping-pong over the CDC.

I add the following lines to several files :

* lwIP_Demo_Rowley_ARM7\USB\USB-CDC.c:262
unsigned vUSBReceiveByte( portCHAR * cByte )
{
    if ( uxQueueMessagesWaiting( xRxCDC ) != 0 )
    {
        xQueueReceive( xRxCDC, cByte, usbNO_BLOCK );
        return 1;
    }
    return 0;
}
/*------------------------------------------------------------*/

* lwIP_Demo_Rowley_ARM7\USB\USB-CDC.h:99
unsigned vUSBReceiveByte( portCHAR * cByte );

* lwIP_Demo_Rowley_ARM7\main.c:313
    if ( vUSBReceiveByte( &cTxByte ))
    {
        vUSBSendByte( cTxByte );
    }

With this code the OS seems to be completly frozen.

What is false in my code ? And why ?

Thanks in advance.

Steve

P.S. : I use the V5.0.2 of FreeRTOS.

davedoors wrote on Wednesday, August 13, 2008:

I think this demo uses an idle task hook function or something similar to continuously send characters in the background. Did you remove this code first? Just setting configUSE_IDLE_HOOK to 0 in FreeRTOSConfig.h might be enough.

stevemuller wrote on Wednesday, August 13, 2008:

Hi,

Currently, I use this hook to handle the Queue over vUSBReceiveByte().
I removed the code who continuously send characters.

Thanks.

Steve