"No one in the brief history of computing has ever written a piece of perfect software. It's unlikely that you'll be the first." --Andy Hunt

In this issue:

  • Pro Tips for Using C's "volatile" Keyword
  • ATTENTION Embedded Systems Designers!
  • 5 Reasons to Select Android as Embedded OS
  • Better Trained Teams Develop Firmware Faster
  • Industry News That's Not Boring

Firmware Update is a free, monthly newsletter by embedded systems expert Michael Barr. Firmware Update is a trademark and this issue is Copyright © 2018. You may forward whole issues to colleagues that design embedded systems.  No other uses are permitted.

Pro Tips for Using C's "volatile" Keyword

The C (and C++) programming language's volatile keyword is a qualifier that can be applied to a variable when it is declared. The inclusion of this keyword informs the compiler that the value of the variable may change at any time--including asynchronously with respect to nearby lines of code.

In this month's brief Tech Talk video, Andrew Girson talks with embedded systems expert Dan Smith about why this is necessary functionality and about best practices for the proper use of this important corner of the C (and also C++) language.

Tech Talk: Using C's Volatile Keyword

Click here or on the above image to watch the video.

ATTENTION Embedded Systems Designers!

Hear ye, hear ye!  Are you a professional designer of embedded systems?  If so, our community needs your help with this important annual survey of industry practices and trends:


Your participation will require just a few minutes of your time.  As an incentive and thank you, we will give away two Fluke 117 Digital Multimeters and three $25 Amazon gift cards in a drawing you can opt-into if you choose.

5 Reasons to Select Android as Embedded OS

Designers of a wide range of embedded systems are choosing Android as operating system.  But why?  If you think Android is just for mobile phones, think again.  It turns out there are a number of compelling reasons to consider making Android the core of your product, including the ease with which you can develop a rich and intuitive user interface. 

Should your project run on Android?  Read "Five Reasons Android is Used in Embedded Systems"

Need training in Android for embedded systems?  Attend an Embedded Android Boot Camp

Note that Barr Group offers consulting and on-site training to teams in all stages of Android adoption.

Better Trained Teams Develop Firmware Faster 

It's well known that the single best way to complete firmware development projects on schedule is to minimize time spent in the debug phase.  And the easiest way to do that is to minimize bugs by creating less bugs in the coding phase.  Here are three great courses for learning to do just that:

Consult the training calendar for prices and locations for those and other upcoming public courses.  

Alternatively, consider bringing an instructor right to your office for an on-site training for your team, based on any subject from the full course catalog.

Industry News That's Not Boring

Three college students who thought they were just running a Minecraft scam have pled guilty to creating the Mirai botnet. The rapid viral spread of their malware across insecure embedded systems (65,000 infected in the first day) shocked even them. Article at http://bit.ly/2AClCxF

Followup: Oregon agency finally admits the First Amendment means it can't silence a red light camera critic who was fined $500 for "practicing engineering without a license" on his wife's day in traffic court. Article: http://reason.com/blog/2017/12/07/licensing-board-admits-they-cant-silence

"When Toasters Attack!" or "How the Combination of Smart Devices and Cloud Computing Will Change the World": Embedded.fm #225 (podcast)

An updated official C++ programming language standard is now available: ISO/IEC 14882:2017

According to a recent report from VDC Research, the combined ARM Cortex processor families are now the architecture of daily interaction for about 57% of embedded systems designers:

Pie Chart of CPU Architecture

Quick Links to Useful Stuff

How to Contact the Author

I'm always interested in hearing from embedded systems designers and happy to take a few minutes to help you find the resources to get a design done right. Send me an email anytime. And be sure to also connect with me on Twitter (@embeddedbarr) and LinkedIn (https://linkedin.com/in/embeddedbarr).