Having trouble viewing this email? Click here |
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Firmware Update
- March 25, 2014
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in this issue
-- Multidimensional Function-Pointer Arrays in C
-- Upcoming Hands-on Embedded C Training Courses
-- "Killer Apps": Embedded Software's Greatest HIT JOBS
-- Lethal Software Defects: Patriot Missile Failure -- Interesting News and Fun Links
Firmware Update is a free newsletter by embedded guru Michael Barr. This issue is Copyright 2014 by Barr Group, but may be reprinted for non-commercial purposes. Please forward it to colleagues who may benefit from the information. |
|
Multidimensional Function-Pointer Arrays in C ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you've ever found yourself implementing a state machine in a nested switch statement, you should be well aware of the downsides. That kind of code becomes very unwieldy very quickly. In particular, such a state machine may result in functions many hundreds of lines long with 'break' statements sprinkled about. The result is a code maintenance nightmare that makes the state machines hard to update.
In Nigel Jones latest blog post at EmbeddedGurus.com, he shows how to convert a crufty nested switch state machine design into a more readable and easier-to-maintain multidimensional array of function pointers. |
|
Upcoming Hands-on Embedded C Training Courses ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
![]()
Register this week to take advantage of the early registration discounts and to ensure there will be a seat available for you. Note too that group discounts are available to companies, by calling (866) 65-EMBED. |
|
"Killer Apps": Embedded Software's Greatest HIT JOBS ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A week from today I'll be giving a 9:30am keynote speech at the big EE Live! conference in Silicon Valley (formerly known as the Embedded Systems Conference). The title of my keynote will be as above and the focus will be on the fact that as embedded software's size and complexity continue to grow rapidly, the safety of the users of all kinds of products increasingly relies upon safe and reliable firmware implementation.
Nowhere is this more evident than in the automotive industry, where self-driving vehicles are a much-hyped and potentially invaluable part of our future. Join me for a discussion of the past, present, and future of embedded software safety. Attendance at the keynote is open to all conference attendees, including those with a FREE exhibits hall pass. |
|
Lethal Software Defects: Patriot Missile Failure ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
During the 1991 Gulf War, 28 U.S. soldiers were killed and almost 100 others were wounded when a nearby Patriot missile defense system failed to properly track an incoming Iraqi Scud missile. The cause of the failure was later found to be a fixed-point programming error in the computer embedded in the Patriot's weapons control system.
In a recent blog post, I take a look back in time to see what went wrong specifically in the assembly code of the 24-bit embedded processor. |
|
Interesting News and Fun Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Presentation: Trends in Embedded Software Development http://www.renesasinteractive.com/file.php/1/CoursePDFs/DevCon_2012/Development_Tools/3C18I_Smith_Trends_in_Embedded_Software_Development.pdf
Detecting software errors using genetic algorithms. http://www.redorbit.com/news/technology/1113087932/software-errors-detected-using-genetic-algorithms-030514/ Turns out some electricity smart meter companies are transmitting user data unencrypted. #embedsys #security http://www.washingtonsblog.com/2013/06/is-your-smart-meter-spying-on-you.html Top 10 Secure Coding Practices https://www.securecoding.cert.org/confluence/display/seccode/Top+10+Secure+Coding+Practices The 17 programming rules of the Unix Philosophy are still useful in modern systems design. http://www.faqs.org/docs/artu/ch01s06.html Vegas says "electronic dice can't be manipulated by cheaters": http://ow.ly/2EEQEv (But that just sounds like a challenge to me...) Math in the movies - lots of fun clips and scenes all indexed. http://www.math.harvard.edu/~knill/mathmovies/ A bug in this C code snippet brought down the AT&T long distance network for 9 hours in 1990. Similar to Apple's #gotofail bug. http://www5.in.tum.de/~huckle/attcrash1.htm Problems Caused by Random Hardware Faults in Critical Embedded Systems http://feedly.com/e/L6AxM7JF How do you know if your random number generator is 'working'? http://blog.cryptographyengineering.com/2014/03/how-do-you-know-if-rng-is-working.html Sad Thought: When my kids someday watch the movie "Terminator" I will have to explain the concept of a phonebook, but not of an autonomous robot killing machine. |
|
Quick Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Contact Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
email:
mbarr@barrgroup.com
phone:
866.65.EMBED
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|