• Bazel Build System for Embedded Projects

    Selecting a build system is an essential decision when creating a project. Changing is always painful, especially in a mature repository. Therefore the choice should be made carefully. With this article, I will try to describe a few advantages of what Bazel can provide in the context of an embedded repository and show how to set up a build environment with a cross compiler from scratch.

  • Zephyr Deep Dive: Ring Buffers

    This post covers Zephyr’s built-in ring buffer API, a component commonly used in producer-consumer scenarios. We will cover how ring buffers in Zephyr work, when to use them, and their strengths and weaknesses. This post will close with an example of augmenting ring buffers with waiting capabilities.

  • C++17’s Useful Features for Embedded Systems

    In this article, I will be showing some features of C++17 that can also be helpful in the embedded world.

  • OTA for Embedded Linux Devices: A practical introduction

    A core belief of Memfault is that we can ship faster when we have good infrastructure in place. An essential piece of this infrastructure is tools to send firmware updates over the air. It enables the team to ship more often and spend more time building features.

    In this article, we look specifically at what is required to ship over-the-air firmware updates for Linux systems.

  • What we've been reading in April

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

  • Pocket article: Debug vs. Release Builds Considered Harmful

    Separate “debug” and “release” builds are very common in embedded development. Typically the notion is improved debug capabilities (less aggressive compiler optimizations, more debugging information like logs) vs. highly optimized and hardened production release builds. I’m here to describe disadvantages to this practice, and why it might make sense to consolidate to a single build!

  • What we've been reading in February & March

    Here are the articles, videos, and tools that we’ve been excited about this February & March. We’re a little late with the February issue but we’ll catch up!

  • A Guide to Using ARM Stack Limit Registers

    We will explore using the MSP Limit and the PSP Limit Registers on the ARM Cortex-M33 architecture to detect stack overflows. We will walk through an implementation on the Renesas DA1469x and look at practical examples of detecting stack overflows. Additionally, we will look at supplementary options for scenarios that the MSPLIM and PSPLIM features fall short.