How-to articles with debugging tips and tricks for embedded 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.

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.

How to Avoid Common Firmware Bugs

Understanding software and hardware bugs in other embedded systems can help you identify, diagnose, and fix bugs in your own.

How to Install and Configure the RedBoot ROM Monitor

 Printable PDF

RedBoot is a portable, open-source ROM monitor that offers a download and debug environment. What more could you want?

Bug-Killing Coding Standard Rules for Embedded C

A C coding standard can help keep bugs out of embedded software by leveraging common language features and development tools.

More Bug-Killing Coding Standards for Embedded C

This second article on enforceable coding standards for embedded systems adds a set of additional bug-killing rules for using certain C keywords and naming global variables.

How to Prevent Bugs in Embedded Software with TDD

It’s a fact: When you create code, you create bugs. Listen in as we present the finer points of Test-Driven Development (TDD) - a game-changing approach to embedded software development that can greatly reduce bugs early in the development process. TDD is not a debugging technique but rather an approach to proactively preventing defects.

How to Find and Fix the Most Common Embedded Software Bugs

As if debugging traditional PC/server software or even smartphone apps wasn't hard enough, debugging embedded software adds significant challenges.

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.

Pages