Tracking Firmware Code Size
In this post, I will show you how to set up a code size dashboard for your project. I’ll cover why should track code size, how to do it, and the steps to calculate code size deltas on every pull requests to keep it to a minimum.
A Shallow Dive into GNU Make
This article explains general concepts and features of GNU Make and includes recommendations for getting the most out of a Make build! Consider it a brief guided tour through some of my favorite/most used Make concepts and features 🤗.
What we've been reading in February (2020)
Here are the articles, videos, and tools we’ve been excited about this past month.
A Guide to Watchdog Timers for Embedded Systems
In this article we will discuss the last line of defense in embedded systems – watchdogs. We will walk through a step-by-step example of how to implement a watchdog subsystem, incorporating a “hardware” and “software” watchdog, and examine effective strategies for root causing the underlying problems leading to these hangs.
Improving Compilation Time of C/C++ Projects
Build times don’t have to be long, even yours! However, many factors play a role. In this post, we’ll dive into which factors contribute to slower builds, compare and contrast options, and also go over some easy wins which you can immediately contribute to your project and share with your teammates. The techniques discussed apply to most C/C++ compilers and projects, and there are a couple extra tips for those using the GNU GCC compiler.
Beyond Firmware in the 2020s
In the next decade the capabilities of software for embedded systems will catch up to those of hardware, 'firmware' will become increasingly difficult to distinguish from 'software', and a new discipline altogether will begin to take shape.
Rust for Low Power Digital Signal Processing
In this post, I go over how Rust can be used to implement DSP algorithms for firmware today, and compare the process and performance to the equivalent code written with CMSIS-DSP.
I2C in a Nutshell
I2C is perhaps the most commonly used bus to connect ICs together. As such, firmware engineers encounter it on most projects. In this post, we explain how I2C works, explore common bugs and investigate how to debug these issues.