• Proper Release Versioning Goes a Long Way

    In this article, we are going to talk through all the various pieces of metadata to be included in your firmware binaries, debug symbols, and build artifacts so that developers and machines can quickly and easily know exactly which build is which and how to fetch associated files for the debug, test, and release pipeline.

  • What we've been reading in December

    Happy New Year! Here’s to a wonderful 2021.

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

  • ARM Cortex-M33 Instruction Tracing Without a Debugger

    In this post we will explore how to perform instruction tracing without a debugger by using the ARM Cortex-M33 Micro Trace Buffer (MTB). We will walk through a few practical examples of how to configure the MTB with Dialog Semiconductor’s DA14695 MCU.

  • 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

    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.