With all the recent excitement around Raspberry Pi, VIA’s VAB-800, and other semi-standard ARM-based products, it’s easy to forget why x86 has been so popular. Obviously, if you need high performance computing for your application x86 is the way to go, and will continue to be the clear choice in the near future. But what if you don’t need high performance? What if even an Intel Atom is overkill? What if energy consumption or thermal constraints are your primary concern? Why do our customers continue to use x86 even when ARM would be the logical choice from a technical perspective? Simple: Ease of integration.
If an embedded engineer wants to use an ARM-based system, s/he will not only need to develop the application software, but possibly the board, kernel, board support package (BSP), OS, and middleware. This is because, unlike x86, there are very few standards connecting all these pieces, and compatibility is highly specific to the hardware being used. In many cases, either the manufacturer or community will have done at least part of this work, but often with limitations that may or may not be a problem. Even if the engineer selects an off-the-shelf board with a BSP provided by the manufacturer, like the Snowball, PandaBoard, or BeagleBoard, the engineer may still have to merge those hardware-specific patches and distribution-specific patches into the mainline kernel. Once that’s done, they will need to build the operating system with all of the specific file system, configuration, and middleware information. Only then can they install their operating system, and begin the development process.
This is quite a lengthy and arduous process compared to the relative ease of installing an operating system on x86 system. All this usually requires is installing a standard operating system from a CD or USB stick, running an automatic update program, and installing the application software. Occasionally, you will have to manually install hardware drivers, but this is relatively simple as most manufacturers provide installers. So, to justify the extra development work required for ARM, you would need to either see a significant savings on the hardware, or be able to sell enough units to spread the per-unit cost to a reasonable level.
Having said this, we may see a shift in ARM-based system development with the release of Windows 8 RT. Rumors suggest that Microsoft may be locking down some of the hardware requirements, which would make it significantly easier to integrate, and would allow for faster, more cohesive updates across a broader spectrum of devices than we currently see with smartphones and tablets based on Android. In other words, if Microsoft is able to remove the current barriers to development on ARM, we could see the embedded market moving toward the platform for minimal performance needs, thermal concerns, and packaging advantages. Until then, though, these boards will continue to be driven by hobbyist communities, and engineers without resources dedicated to platform development will continue to leverage the compatibility, time-to-market, and professional support advantages of x86.