Phillip Johnston, Author at Embedded Artistry
Phillip Johnston
https://eadn-wc05-197419.nxedge.io/cdn/wp-content/uploads/2021/05/cropped-embedded_artistry_icon_with_trademark-32x32.png
Embedded Artistry
Musings on Supply Chain Vulnerability in Light of “The Big Hack”

At the beginning October 2018, Bloomberg dropped a bomb by publishing "The Big Hack: How China Used a Tiny Chip to Infiltrate America's Top Companies". The story claims that between 2014-2015, Supermicro server motherboards had a small IC inserted onto the PCB, possibly connected to the baseboard management controller (BMC). The chip allowed attackers to …

Continue reading "Musings on Supply Chain Vulnerability in Light of “The Big Hack”"

Embedded Systems Testing Resources

Embedded Artistry was founded with the goal of creating reliable, safe, and well-tested embedded systems. The sad fact is that most embedded software that we've encountered is low-quality and untested. Perhaps this holds true for most of the software industry - the continual procession of hacks, flaws, and errors is discouraging. We are focused on …

Continue reading "Embedded Systems Testing Resources"

A Look at My Portable Embedded Toolkit

Embedded systems developers rely on a variety of tools: debug adapters, power supplies, multimeters, oscilloscopes, logic analyzers, spectrum analyzers, and more. Much of the equipment we use lives in our offices or labs, since it's too bulky to move around. But for engineers who travel frequently, it's quite helpful to have a portable toolkit. You …

Continue reading "A Look at My Portable Embedded Toolkit"

What I Learned from James Grenning’s Remote TDD Course

Test Driven Development (TDD) is an important software development practice which is typically foreign to embedded teams. James Grenning has put a tremendous amount of effort into teaching embedded systems developers how to adopt TDD. He published an embedded systems classic, Test-Driven Development for Embedded C, and regularly conducts TDD training seminars. Admittedly, TDD is …

Continue reading "What I Learned from James Grenning’s Remote TDD Course"

Embedded Artistry’s Technology Radar

I was introduced to the Technology Radar concept while at Bredemeyer Consulting’s Software Architecture Workshop. The Technology Radar concept was created by ThoughtWorks, and they regularly publish updates to their own radar. I immediately latched onto the concept as an effective way to track the technologies and techniques that we are investigating at Embedded Artistry. Our technology radar can also …

Continue reading "Embedded Artistry’s Technology Radar"

EMB2: A C/C++ Framework for Multi-core and Multi-chip Embedded Systems

EMB2 is a C/C++ framework developed by Siemens and the University of Houston. EMB2 provides generic building blocks for building multi-core or multi-chip embedded applications, including basic parallel algorithms, concurrent data structures, and application skeletons. Since EMB2 is targeted for embedded applications, it provides soft-real-time support, predictable memory consumption (no dynamic memory allocations after startup), …

Continue reading "EMB2: A C/C++ Framework for Multi-core and Multi-chip Embedded Systems"

Timeless Laws of Software Development

I am always seeking the wisdom and insights of those who have spent decades working in software development. The experiences of those who came before us is a rich source of wisdom, information, and techniques. Only a few problems in our field are truly new. Most of the solutions we seek have been written about …

Continue reading "Timeless Laws of Software Development"

Musings on Tight Coupling Between Firmware and Hardware

Embedded software is often tightly coupled to the underlying hardware and RTOS. There is a real cost associated with this tight coupling, especially in today's increasingly agile world with its increasingly volatile electronics market: teams cannot rapidly respond to changes. Instead, changes tend to trigger large-scale rewrites or contribute to the degradation of the code …

Continue reading "Musings on Tight Coupling Between Firmware and Hardware"

My Favorite Debugging Tip: Get Up and Take a Walk!

We've all experienced the mounting frustration that arises when we've spent multiple hours trying to solve a problem. You have a sinking suspicion that there's something trivial that you're missing, something which would make everything click and start working correctly again. In these kinds of debugging situations, it's easy to enter a tail spin. The …

Continue reading "My Favorite Debugging Tip: Get Up and Take a Walk!"