How-to articles about the use of real-time operating systems in embedded systems.

Mutexes and Semaphores Demystified

What's the difference between a mutex and a semaphore? Misuse of these two distinct types of synchronization primitives can lead to difficult to debug defects with potentially severe consequences in safety-critical devices.

Pros and Cons of AndroidOS for Embedded Systems

Android software architecture, hardware requirements, licensing terms, and security considerations with a few case studies to illustrate the pros and cons of building embedded systems around the AndroidOS.

How to Minimize Interrupt Service Routine (ISR) Overhead

With all the automation available today, it's easy for programmers to overlook costly overhead introduced into machine code by the compiler. Interrupt handlers are one key area worthy of a closer inspection.

The Perils of Preemptive Multitasking

Every commercial RTOS employs a priority-based preemptive scheduler. This despite the fact that real-time systems vary in their requirements and real-time scheduling doesn't have to be so uniform. Multitasking and meeting deadlines is certainly not a one-size-fits-all problem.

Introduction to Preemptive Multitasking

Most real-time operating systems employ preemptive schedulers. This primer on preemption also looks at the kind of multitasking it enables

How to Choose a Real-Time Operating System

In the market for a real-time operating system (RTOS)? This article provides an overview of RTOSes and how you can select the best one for your project.

Introduction to Priority Inversion

When tasks share resources, as they often do/must, strange things can and will happen. Priority inversions can be particularly difficult to anticipate. A basic understanding of the problem is key.

How to Use Watchdog Timers Properly when Multitasking

To keep a watchdog timer from resetting your system, you've got to kick it regularly. But that's not all there is to watchdog science. We will examine the use and testing of a watchdog, as well as the integration of a watchdog into a multitasking environment.

How to Use Java in Embedded Systems

Should you consider using Java as an embedded programming language? This article describes when and where Java works for embedded development.