"Smooth seas do not make skilled sailors." --African Proverb

In this issue:

  • How to Get Started with C++ in Embedded Systems
  • Budget Now for 2019 Firmware Skills Training
  • How to Prioritize RTOS Tasks (and Why it Matters)
  • Industry News That's Not Boring

Firmware Update is a free, monthly-ish 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.

How to Get Started with C++ in Embedded Systems

C++ compilers are available for most modern embedded processors, so why does the adoption rate for C++ remain so low compared with C?


In my opinion, there is--simultaneously--both too much and too little information available to newbies to C++.  The language is feature-rich and thus many books and websites are vast in breadth and depth and thereby often overwhelm programmers (including firmware developers) coming from electronics design or C experiences.  The thing is, you don't need to use most of those features to benefit from a switch to C++. 

But at the same time--it seems to me--there is also too little available in the way of simple, practical guidelines for immediately getting started with C++.  So we created a free 1-hour video that covers the key benefits of C++ for embedded developers, dispels the most common C++ myths, and shows you how to make the most effective use of C++ in the "first month" and then the "first year".

Watch it here: https://barrgroup.com/embedded-systems/how-to/getting-started-with-cplusplus

Budget Now for 2019 Firmware Skills Training

Better trained teams finish product development faster and with fewer bugs.  Barr Group’s training courses are a convenient and cost-effective way to train individual engineers or whole teams in best practices in programming and the latest in design techniques.

Individual courses run up to 4 days and include information-rich lectures as well as hands-on exercises, typically using real-world embedded hardware platforms and tools.  If you have a team of 5 to 50 and a suitable meeting space, an experienced instructor will come to you to deliver any course from the full catalog:


For individuals and smaller teams, public training courses are held in a state-of-the-art training facility near Washington, DC.  Registration for the Spring 2019 public courses is already open:

Discounts are available for early registration (i.e., current pricing) as well as additional for groups of three or more from the same company (20% off).

How to Prioritize RTOS Tasks (and Why it Matters)

Are you using a real-time operating system in your current product?  If so, did you know there is a mathematically optimal method of assigning fixed priorities to the resulting mix of tasks and interrupt service routines?  A method that can lower the cost of the computing power needed to reliably complete the work!

When an RTOS is used without assigning task priorities in this optimal way, only one task (or, more commonly, one ISR) may be guaranteed to meet all of its deadlines during a transient overload.  And the rare intermittent (and potentially deadly) system misbehaviors that result are usually among the most challenging problems to debug.

Learn about priority: https://barrgroup.com/webinar/how-prioritize-rtos-tasks-and-why-it-matters

Industry News That's Not Boring

Will supercapacitors supersede batteries? https://t.co/tB3BufTOON

Researchers have developed offline speech recognition that is 97% accurate: https://t.co/NNkm9kMlPr

Critical flaws found in FreeRTOS IoT operating system: https://t.co/xY8GJqPA5F

Security vulnerability in Internet-connected construction cranes:  https://t.co/wlIqs7F2vQ  (Internet-connected construction cranes?!?  Ugh.)

Why vehicle security may require a different approach:  https://t.co/gACm7naAY5

There will be moments when self-driving cars will have to decide who should live and who should die.  How would you code for each of these potential scenarios? https://t.co/6lTFTdJF6D

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 LinkedIn (https://linkedin.com/in/embeddedbarr) and follow me on Twitter (@embeddedbarr).