USB on embedded systems: quirky but versatile
Boot a beaglebone running XFCE with USB mouse and keyboard connected, and both input devices will likely behave as expected. Venture away from this limited use case (ubiquitous embedded board serving as mini-desktop-replacement), and things start to get more interesting. In some corners of the embedded USB world, There Be Dragons -- we'll discuss both common limitations of embedded USB host controllers and examples of weird quirks encountered in the wild. Moving on to the unique features of embedded USB, we'll cover playing the USB device role with "gadget" drivers, and the further twist of OTG (On-the-Go) support that enables host/device role swapping.