some questions about USB-CDC and ISR

Dear Sirs, I adapted the USB-CDC demo for AT91SAM7A3, taken from the lwIP_Demo_Rowley_ARM7, it works but then I modified the vUSBCDCTask function to implement a simple Echo for that I at the end of the for(;;) block: while( xQueueReceive( xRxCDC, &ucByte, usbNO_BLOCK ) ){     xQueueSend( xTxCDC, &ucByte, usbNO_BLOCK ); } Then I test the throughput but It is really slow (about 300 @ 115200baud nominal). I would like to know how to improve the responsiveness. Should I do everything in the ISR function? Or should I wake up a task from the ISR? And then, howto to make a task waits the receipt of data (from ISR)? I put xQueueReceive (….) with some delay (e.g. usbSHORT_DELAY), but in this case the task is polling the queue…. Thank you for your help

some questions about USB-CDC and ISR

Try searching the forum for "circular buffer".  You should find some helpful discussion.

some questions about USB-CDC and ISR

Dear sir, thank you for your answer. I had a look at the old messages, but I couldn’t find any new ideas. I followed the R.Barry instruction I had: - an ISR routine collecting data from the hardware and then it puts them in a Queue; - a task replying with a simple echo. But the throughput is near 300baud (or less..)..note that if I repeat more times an incoming character (eg. 2 times) I double the speed..4 times speedx4 etc.. I wonder if the bottleneck would be on the pc side… I try to put everything in the ISR routine

some questions about USB-CDC and ISR

Sorry but the last part of the message is: …. I try to put everything in the ISR routine but I didn’t have any improvement Thanks for your help

some questions about USB-CDC and ISR

Have you checked that your ISR time doesn’t exceed your timer tick?

some questions about USB-CDC and ISR

No, I haven’t. How can I do that? I have one more question, can happen a task switch while ISR is executing?  I put the ‘echo’ in the ISR, which is a smal amount of code: get data from usb IN buffer and put it in the OUT buffer. thank for your help M