Global Sources
EE Times-India
Stay in touch with EE Times India
EE Times-India > Embedded

Easing embedded processing development (Part 2)

Posted: 22 Aug 2011     Print Version  Bookmark and Share

Keywords:operating system  embedded design  RTOS 

If your system is using an appropriate embedded microprocessor, that is one with a memory management unit (MMU), efficient support for external memory, and at least 300MHz, then a HLOS will be a good option. Developers will generally choose between Windows CE (or similar embedded Windows variants), Linux and Android.

Windows CE requires royalties but has attracted many developers because of the ease of use it offers for developing user interface applications. It provides a fully supported OS with GUI framework and tools, along with applications and training support from a large and well-established network of partners.

At the other extreme is Linux. A major attraction of Linux is that it can be used completely free of any licensing fees. The fast moving nature of the Linux community also usually ensures that Linux drivers are the first to take advantage of latest hardware features. Linux developers also have tremendous flexibility in tailoring their systems. The downside of Linux is that the core OS doesn't include many essential features such as web servers or GUI frameworks. These features need to be added via a root file system that includes all the user space applications desired. In practice building a root file system and its associated embedded applications for an embedded target can be quite challenging for even an experienced team and increases the complexity of using Linux. Semiconductor vendors typically provide a root file system containing many of the commonly required Linux applications. For new adopters of Linux who need a more customised offering, one option is use an OS vendor such as Mentor Graphics, MontaVista, RidgeRun, Timesys or Wind River who provide commercial versions of Linux with fully supported root file systems and configuration tools.

Finally, the third option – Android – is experiencing a rapid adoption because it appears to blend the best aspects of WinCE and Linux. Android, of courses, uses Linux as its underlying OS and then adds a standardised user space and application framework. This includes WiFi, multi-multimedia playback, GUI frameworks with built-in touch screen support and many other features essential to many of today's embedded applications. Like Linux, Android is available royalty-free from Google. It is built on Linux but its content and how various plug-ins are integrated into it, such as its various multi-multimedia processing capabilities, is controlled by Google. Google's control of the all the applications integrated into Android does restrict the flexibility of developing software for Android, when compared to Linux. But for a developer who just wants something that works, it accelerates the development process as a whole by simplifying and streamlining the integration of third-party code when compared with the effort that is required for the same task under Linux.

While HLOS offerings have much to offer, they have several disadvantages, especially in the realms of memory footprint and real-time performance. HLOSs were not generally designed and developed specifically for real-time systems where predictable and pre-determined response times are critical. While they are often fine for use in 'soft' real-time applications such as multi-multimedia playback, if the embedded processing application will be a real-time system that has hard real-time constraints that cannot be missed, you will need to use an RTOS.

The deterministic responsiveness of some real-time systems can be a matter of life or death. For example, an embedded braking system in an automobile must be able to respond immediately when the brake is applied. An RTOS will have much faster interrupt response time than a HLOS and will also be deterministic, which means that certain operations are guaranteed to always execute within a specific time span. Equally important is that the smaller code size of an RTOS means that the interrupt handlers and core kernel can be locked into a processor's internal memory, eliminating the effect of cache misses causing unpredictable execution times. RTOS products can be obtained through third-party vendors such as QNX, Wind River, Mentor Graphics, Green Hills and many others.

A second key benefit of an RTOS is memory footprint. RTOSes are generally designed to be more code efficient in the first place and are additionally much more modular than a HLOS. This makes it easy to configure out unneeded modules or functions. For applications that need to meet constrained memory requirements, such as those running on MCUs with on-chip memory, this is critical. Even with systems with external memory, an RTOS will usually result in lower memory costs compared to a HLOS.

About the author
Nick Lethaby is a manager in Texas Instruments' software development organisation, working with Linux, Android and real-time operating system (RTOS) technology and providers. Previously, he worked for nine years as the product manager for TI's digital signal processing/BIOS RTOS and xDAIS/codec engine multi-multimedia stack.

To download the PDF version of this article, click here.

 First Page Previous Page 1 • 2

Comment on "Easing embedded processing developme..."
*  You can enter [0] more charecters.
*Verify code:


Visit Asia Webinars to learn about the latest in technology and get practical design tips.


Go to top             Connect on Facebook      Follow us on Twitter      Follow us on Orkut

Back to Top