How-to articles about designing safe, reliable, and secure embedded systems.

Arizona Lottery's Not-So-Random Number Generator

Random numbers -- really, truly random numbers -- play a very important role in security.  Unfortunately, they are also common sources of non-random behavior, as in the Arizona Lottery drawing.

Automotive Grade Linux for Infotainment

Several major carmakers are using Android to power their In-Vehicle Infotainment (IVI) and telematics systems.  Another option is Automotive-Grade Linux.

Introduction to Rate Monotonic Scheduling

If you've got a lot of real-time tasks and tight deadlines, what's the best way to prioritize them? Rate Monotonic Algorithm provides the optimal technique.

Security and the IoT

In a recent DDoS attack, devices such as webcams and DVRs were used to launch an attack on domain service provider, Dyn. The enormity of this event brings to light the importance of securing all devices capable of connecting to the Internet.

Top 10 Causes of Nasty Embedded Software Bugs

Too often engineers give up trying to discover the cause of infrequent anomalies--because they can't be easily reproduced in the lab--dismissing them as "user errors" or "glitches." Yet these ghosts in the machine live on. So here's a guide to the most frequent root causes of difficult-to-reproduce firmware bugs.

Top 5 Causes of Nasty Embedded Software Bugs

Too often engineers give up trying to discover the cause of infrequent anomalies--because they can't be easily reproduced in the lab--dismissing them as "user errors" or "glitches." Yet these ghosts in the machine live on. So here's a guide to the most frequent root causes of difficult-to-reproduce firmware bugs.

How to Allocate Dynamic Memory Safely

Whether you're using only static memory, a simple stack, or dynamic allocation on a heap, you have to proceed cautiously. Embedded programmers can't afford to ignore the risks inherent in memory utilization.

How to Protect Non-Volatile Data

Unexpected power loss and software bugs can undermine the reliability of non-volatile data. Fortunately, there are various ways to make non-volatile data resilient to such corruption.

How to Improve Product Usability

Product usability problems require the engineer to take off his engineering hat and think more like a user.

Response Timing for User Interfaces

Proper timing in user interfaces often has more to do with the user's perception than with the actual passage of time.

Pages