How to Combine Volatile with Struct
C’s volatile keyword is a qualifier that can be used to declare a variable in such a way that the compiler will never optimize away any of the reads and writes. Though there are several important types...
View ArticleIntroducing Barr Group
In the ten months since forming Barr Group, I have received many questions about the new company. As we enter the new year, I thought it a good time to use this blog post to answer the most frequently...
View ArticleDead Code, the Law, and Unintended Consequences
Dead code is source code that is not executed in the final system. It comes in two forms. First, there is dead code that is commented out or removed via #ifdef’s. That dead code has no corresponding...
View ArticleIntellectual Property Protections for Embedded Software: A Primer
My experiences as a testifying expert witness in numerous lawsuits involving software and source code have taught me a thing or two about the various intellectual property protections that are...
View ArticleAn Update on Toyota and Unintended Acceleration
In early 2011, I wrote a couple of blog posts (here and here) as well as a later article (here) describing my initial thoughts on skimming NASA’s official report on its analysis of Toyota’s electronic...
View ArticleSecurity Risks of Embedded Systems
In the words of security guru and blogger Bruce Schneier “The Internet of Things is Wildly Insecure — and Often Unpatchable”. As Bruce describes the current state of affairs in a recent Wired magazine...
View ArticleApple’s #gotofail SSL Security Bug was Easily Preventable
If programmers at Apple had simply followed a couple of the rules in the Embedded C Coding Standard, they could have prevented the very serious `Gotofail` SSL bug from entering the iOS and OS X...
View ArticleLethal Software Defects: Patriot Missile Failure
During the Gulf War, twenty-eight U.S. soldiers were killed and almost one hundred others were wounded when a nearby Patriot missile defense system failed to properly track a Scud missile launched from...
View ArticleA Look Back at the Audi 5000 and Unintended Acceleration
I was in high school in the late 1980′s when NHTSA (pronounced “nit-suh”), Transport Canada, and others studied complaints of unintended acceleration in Audi 5000 vehicles. Looking back on the Audi...
View ArticleFirst Impressions of Google Glass 2.0
Last week I took advantage of Google’s special 1-day-only buying opportunity to purchase an “Explorer” edition of Google Glass 2.0. My package arrived over the weekend and I finally found a few hours...
View ArticleGovernment-Sponsored Hacking of Embedded Systems
Everywhere you look these days, it is readily apparent that embedded systems of all types are under attack by hackers. In just one example from the last few weeks, researchers at Kaspersky Lab (a...
View ArticleSecurity Risks of Embedded Systems
In the words of security guru and blogger Bruce Schneier “The Internet of Things is Wildly Insecure — and Often Unpatchable”. As Bruce describes the current state of affairs in a recent Wired magazine...
View ArticleApple’s #gotofail SSL Security Bug was Easily Preventable
If programmers at Apple had simply followed a couple of the rules in the Embedded C Coding Standard, they could have prevented the very serious `Gotofail` SSL bug from entering the iOS and OS X...
View ArticleLethal Software Defects: Patriot Missile Failure
During the Gulf War, twenty-eight U.S. soldiers were killed and almost one hundred others were wounded when a nearby Patriot missile defense system failed to properly track a Scud missile launched from...
View ArticleA Look Back at the Audi 5000 and Unintended Acceleration
I was in high school in the late 1980’s when NHTSA (pronounced “nit-suh”), Transport Canada, and others studied complaints of unintended acceleration in Audi 5000 vehicles. Looking back on the Audi...
View ArticleFirst Impressions of Google Glass 2.0
Last week I took advantage of Google’s special 1-day-only buying opportunity to purchase an “Explorer” edition of Google Glass 2.0. My package arrived over the weekend and I finally found a few hours...
View ArticleGovernment-Sponsored Hacking of Embedded Systems
Everywhere you look these days, it is readily apparent that embedded systems of all types are under attack by hackers. In just one example from the last few weeks, researchers at Kaspersky Lab (a...
View ArticleReal Men [Still] Program in C
It’s hard for me to believe, but it’s been nearly 8 years since I wrote the popular “Real Men Program in C” blog post (turned article). That post was prompted by a conversation with a couple of younger...
View ArticleCyberspats on the Internet of Things
When you hear the words “weaponization” and “internet” in close proximity you naturally assume the subject is the use of hacks and attacks by terrorists and nation-state actors. But then comes today’s...
View ArticleDid a Cyberattack Cause Recent Crashes of U.S. Naval Destroyers?
Crashes involving naval vessels are rare events. Yet somehow two of the U.S. Navy’s guided-missile destroyers have crashed into other ships in as many months: June 17: U.S.S. Fitzgerald Almost...
View Article