USB Driver and USB Stack Support

sangu-lisa wrote on Tuesday, October 09, 2012:

Hi All,

Does FreeRTOS support USB Driver and USB Stack ?
Can you please give info about the same ? Or any Link ?

Regards
Lisa

xz8987f wrote on Tuesday, October 09, 2012:

Hello,
FreeRTOS is really not depending on an USB stack or driver: it is more about if a USB stack would use the RTOS interface (mutex, memory allocation) if it is using it at all.
But I can say that I’m using FreeRTOS with USB stacks (both FSL and CMX stacks) in several designs:
http://mcuoneclipse.wordpress.com/category/processor-expert/embedded-components/usb/

Erich

sangu-lisa wrote on Tuesday, October 09, 2012:

Dear Erich,

Thank you for quick reply.

1) Is there any memory information need to be considered for USB Driver or stack ?
2) If yes, what is the memory requirement for USB stack / drive ?
3) you have mentioned that you have supported USB stack… Did u support USB drivers using FreeRTOS ?

Regards
Lisa

xz8987f wrote on Tuesday, October 09, 2012:

Hi Lisa,
this really heavily depend on the USB stack, the USB protocol you are using, and of course of the microcontroller.
I can tell that I have an USB CDC stack application running on an ARM Cortex M0+ with gcc, and needs about 20 KByte of Flash and 3 KByte of RAM. But again: this heavily depends on many factors, but should give you a ballpark.
And yes, it works seamlessly with FreeRTOS.

Hope this helps,
Erich

sangu-lisa wrote on Tuesday, October 09, 2012:

Dear Erich ,

Let me put my understandings below, … please tell me whether they r correct

1) FreeRTOS supports USB driver and USB stack
2)  If microcontroller has these features, FreeRTOS can support these features without any issues

Regards
Lisa

sangu-lisa wrote on Tuesday, October 09, 2012:

and i also read tat , "FreeRTOS have their USB Stack software but they are not free " !!!!!!!!!!! is this true ??

xz8987f wrote on Tuesday, October 09, 2012:

Hi Lisa,
1) FreeRTOS is a RTOS. There is nothing in my view which would prevent it to use it with an USB stack (or any other software or stack) as long they well-behave.
2) If your microcontroller has USB, and you have a FreeRTOS port for it, and you have an USB stack for it, and if this USB stack does not something dramatically different from what I used to see as USB stacks, then it should be possible to have them combined.
3) All of the above heavily depend on which microcontroller, RTOS port and USB stack. You need to verify it with what you plan to use.
4) Some vendors might bundle their USB stack with FreeRTOS. And this might not be free of charge.

What I can say for myself:
a) I have the Freescale CMX USB HID stack running with Freescale ColdFire and FreeRTOS (e.g. in http://mcuoneclipse.wordpress.com/2012/08/14/timing-system-in-a-lunch-box/)
b) I have the Freescale USB CDC stack running on multiple devices, from 8bit S08 to 32bit ColdFire and Kinetis ARM (both Cortex-M4 and Cortex-M0+)
Both USB stacks can be downloaded free of charge from the Freescale website (licensing terms apply, as they are not open source, but they are provided free of charge for Freescale devices). Other silicon vendors have similar offerings.

I hope this helps,
Erich

sangu-lisa wrote on Wednesday, October 10, 2012:

Dear Erich,

Thank you very much for detailed information provided . It is very useful to me.

Regards
Sangeeth