eCosPro-USB - USB Host and Device stacks for the eCosPro RTOS


The eCosPro-USB host and device stacks are optional middleware components for eCos that enable straightforward incorporation of USB functionality into your eCos-based designs. The stacks focus on delivering standards conformance and reliability in a minimal resource footprint, and feature first class integration with the relevant eCos subsystems and configuration system.

eCosPro-USB Stack Highlights

Class Support

A range of classes build on the host and device stacks to deliver standards-based USB functionality.

Host MSC (Mass Storage)
The host mass storage class provides a painless route to add low-cost, high capacity, removable storage to your device. It supports the use of USB memory sticks and higher capacity hard-disk based mass storage devices. Access to the USB storage devices is fully integrated with the eCos file system infrastructure and FAT file system. This enables the use of the native eCos file system API's including the standard POSIX, C and C++ libraries. Utility features such as FATfs formatting and automounting are also supported.
Host CDC-ACM (Serial Emulation)
The Host CDC-ACM class enables the connection of USB to serial converters conforming to the USB-IF defined CDC ACM standard. This can be used to dynamically expand the number of serial ports connected to your device. It can also be used for straightforward interconnection of embedded hardware; where one side implements the USB host class, and the other the device (target) side support. The class is fully integrated into the eCos I/O subsystem enabling access via the standard APIs on par with native UARTs.
Host FTDI (Serial Emulation)
The Host FTDI class enables the connection of FTDI USB to serial adapters to your embedded hardware, dynamically expanding the number of serial port connections available. This is a proprietary standard defined and supported by FTDI. The class is fully integrated into the eCos I/O subsystem enabling access via the standard APIs on par with native UARTs.
Device RNDIS (Microsoft Remote Networking Device Interface Specification)
The target RNDIS device class enables the driverless connection of your embedded device to Windows and Linux based hosts. Mac OS X connectivity can also be supported through the availability of open source and third party Mac OS X device drivers. When connected to a host, the device appears as a new network interface. Standard IP networking protocols and APIs can then used for all host-based communications to the connected device. On the device side the class is fully integrated with the eCos lwIP networking stack, also enabling use of the standard network APIs and services to communicate with the host. This could be used, for example, to configure and control your device via a web browser running on the host - obviating the need for any installation of host-based applications or device drivers. The host network connection can also provide your device with direct network access to the LAN and internet if needed (may require host operating specific configuration of firewall and network interface).
Device CDC-EEM (Ethernet Emulation)
The target CDC-EEM device class provides a lightweight network device implementation. CDC-EEM provides similar functionality to the RNDIS class, but with a smaller footprint and more efficient protocol implementation - this makes it particularly suitable for use on devices with very limited resources. The implementation conforms to the USB-IF standards CDC-EEM class definition and is supported natively on Linux hosts and by numerous third-party drivers on other host operating systems.
Device CDC-ACM (Serial Emulation)
The target CDC-ACM device class provides a straightforward way to connect to, and communicate with, any host based system. Windows, Mac OS X and Linux all have built-in driver support. When connected to a host, the ecos-based device simply appears as a new serial interface. On the target side the class is fully integrated into the eCos I/O subsystem enabling standard I/O library API access on par with native UARTs.

USB Host Stack

The host stack features a compact code footprint of less than 16KB with an associated data requirement of less than 10KB. It supports OHCI host controllers and the popular Synopsys DWC OTG controller, and can be ported to non-standard controllers where required. Control and bulk transports are included. Root hub class support is also incorporated as standard.

USB Device Stack

The device stack supports a range of USB classes and the underlying functionality necessary to implement further standards conformant or custom classes. Control, interrupt and bulk transports are supported.


The eCosPro USB stacks and their associated class support, including full source code and documentation, are integrated into all eCosPro releases (eCosPro v3.1.63 release or later). The included USB functionality is by default licensed for a 90-day internal evaluation ONLY. A commercial license is required in order to gain technical support and to distribute products that include any eCosPro USB functionality. Licensing is product-based with product, product range and company buyout options.

eCosCentric eCosCentric

For additional technical details please read the eCosPro-USB related chapters of the eCosPro online documentation. Contact us for a detailed discussion regarding the eCosPro-USB packages and any pricing, technical or commercial questions you may have.