Challenges with Userspace USB Embedded Device Interfacing

Scheduled: Friday, September 25, 2009 from 3:00 – 3:45pm in Salon AB


It is compelling to integrate complex embedded systems
with Linux USB userspace code. However, the complexity of userspace interface adds significant risk to the development cycle.

Integrating a USB2.0 Isochronous mode ARM embedded system with Linux host software presents an end to end design challenge requiring not just a view of Linux from the 'inside' but also from the 'outside'. Some of the challenges Linux added to an already complex embedded system development will be presented, with some ideas to reduce the barries to entry and learning curve for embedded systems and host communication.


The Portland State Aerospace Society is developing a Linux based flight computer with sensor and operational nodes connected to the system through USB in isochronous mode.

Most designs have margin to trade performance for reliability. Which choices in the Linux USB userspace interface will present which options? Is it better to write a kernelspace driver for known reliability or would it only be good for performance, or neither? There exists a finite amount of time in any design cycle to analyze these ideas for a given system.
Once a designer makes a choice what monitoring and analysis options are available in the api? How can a developer ensure they are following userspace
to kernel semantics, without intensive study of the kernel source code.

Many people want to interface USB devices to host computers. Reducing the time and complexity involved in such integration can make it economical for manufacturers to write and provide drivers for their devices. Can the userspace api develop in a direction to support this?

Discussing some of the challenges of the userspace interface to the Linux USB subsystem may provide some insight and ideas for improvement and encourage further use of Linux as a host system.


usb, ARM


  • Biography

    Dave is a professional software engineer with a background that includes embedded systems, medical device firmware, medical materials manufacturing, safety-critical industrial control systems, distributed high-availability clusters, large scale databases and cross-technology integration.

  • K Wilson

    Portland State University


    K (Keith) Wilson worked in VLSI/ASIC and microprocessor
    design prior to falling in league with eccentrics,
    mathematicians and programmers as an MS student in
    Computer Science at Portland State University.

Leave a private comment to organizers about this proposal