• Defensive Programming - Friend or Foe?

    In this article, we’ll dive into what defensive and offensive programming are, where defensive programming falls short, how developers should think about using them within embedded systems, and how the techniques of offensive programming can surface bugs and help developers root cause them immediately at runtime.

  • Seamless firmware development with PlatformIO

    In this post, I’d like to introduce PlatformIO. I will go over what PlatformIO is, how you can use it for your project, and what it is good at. I also highlight a few shortcomings worth keeping in mind.

  • What we've been reading in November (2020)

    Here are the articles, videos, and tools that we’ve been excited about this November.

  • The Best and Worst MCU SDKs

    In this post, I download SDKs for 10 popular Cortex-M4 microcontrollers, and evaluate how straightforward it is to get a simple example compiling. I include some step by step instructions to get started, a rating out of 10, and a few comments.

  • MCUboot Walkthrough and Porting Guide

    In this article, we will explore the feature set of MCUboot and how it works. We will walk through step-by-step how to port it to a custom platform and test our port out on a Cortex-M based development board.

  • What we've been reading in October (2020)

    Here are the articles, videos, and tools that we’ve been excited about this October.

  • Advanced GDB Usage

    In this reference-style post, we discuss some of the more advanced and powerful commands of the GNU debugger, GDB, as well as cover some of the best practices and hacks I’ve found over the years that help make GDB more pleasant to use.

  • Separating Unique Parameters from Firmware Binaries

    In this post, we take a look at a method for separating unique parameters such as keys and IDs from firmware. This enables us to program these parameters separately from the firmware, making our setup much more scalable and suitable for use in production.