How-to articles about the design of safe and reliable embedded systems.

Embedded Control Systems in Practice

An introduction to embedded control systems along with a practical example on the differences between open and closed loop systems.

Inexpensive Firmware Process Improvements for Small Teams

Learn practical and easy-to-apply software process improvements that even the smallest design teams can use to make firmware easier to code, debug and test, with a tools cost of less than $600.

ESC Boston: Dangerous Flaws in Safety-Critical Device Design

On May 3, 2017, Barr Group CTO and software expert Michael Barr delivered this keynote about the safety and security of Internet of Things devices at the Embedded Systems Conference in Boston.

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.

How to Prevent and Detect Stack Overflow

The safety and security of every embedded system is dependent upon proper operation of the stack (or stacks, if there are multiple). If a stack overflow occurs, a major or minor malfunction is very likely to follow. Despite this, the stack in the majority of embedded systems is sized based on nothing more than a hunch. As well, run-time stack monitoring is too seldom used.

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.

Pages