~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Firmware Update
- March 1, 2011
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in this issue
-- Unintended Acceleration and Embedded Software Bugs
-- What is Arduino?
-- Efficient C Tip #13: Use the Modulus Operator with Caution
-- Industry News You Can Use
Firmware Update is a free newsletter by embedded software expert Michael Barr. It is Copyright 2011 by Netrino, LLC, but may be reprinted for non-commercial purposes. Please forward it to colleagues who may benefit from the information. |
|
Unintended Acceleration and Embedded Software Bugs ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Last month, NHTSA and the NASA Engineering and Safety Center (NESC) published reports of their joint investigation into the causes of unintended acceleration in Toyota vehicles. NASA's multi-disciplinary NESC technical team was asked, by Congress, to assist NHTSA by performing a review of Toyota's electronic throttle control and the associated embedded software. In what I consider to be a carefully worded concluding statement, NESC stated that it "found no electronic flaws in Toyota vehicles capable of producing the large throttle openings required to create dangerous high-speed unintended acceleration incidents."
The first thing you will notice if you join me in trying to judge the technical issues for yourself are the redactions: pages and pages of them. In parts and entirely for unexplained reasons, this report on automotive electronics reads like the public version of a CIA Training Manual. The redactions are at their worst in NASA's Appendix A, which describes the review of Toyota's embedded software in detail. Despite the redactions, we can still learn some interesting, as well as a few suggestive, facts about Toyota's embedded software. Here's what I've been able to learn so far. |
|
What is Arduino? ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Believe it or not, artists, hobbyists, and other "makers" have discovered embedded computing. Increasingly, they're turning to an open source hardware platform called Arduino to put firmware inside their creations. Over 100,000 of these inexpensive embedded systems have apparently been sold for use in prototyping and in a range of low-volume "products." Should you care?
|
|
Efficient C Tip #13: Use the Modulus Operator with Caution ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you are interested in writing efficient C, you need to be cautious about using the modulus operator. Why is this? Well a little thought shows that C = A % B is equivalent to C = A - B * (A / B). In other words the modulus operator is functionally equivalent to three operations. As a result it's hardly surprising that code that uses the modulus operator can take a long time to execute. In many cases it's possible to restructure the code such that the modulus operator is not needed.
|
|
Industry News You Can Use ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nigel Jones is developing a hardware quiz for embedded software developers! Help him: http://bit.ly/fpNlK8
Firmware Engineers Need Good Hardware Documentation. How to convince your boss: http://bit.ly/hRxmTv Public TDD for Embedded C course March 22-24 in Ohio by James Grenning. Register now: http://bit.ly/gyrQ5f Discount code TWTDD. Firmware consulting as a leading economic indicator. Stay tuned for an up-tick in jobs: http://bit.ly/hKSAW1 The movie 'Inception' explained in C code. Nerd Alert: http://bit.ly/hpVXve Rapid Prototyping with State Machines and Arduino. QP-Arduino announced: http://bit.ly/fxW2NM A Car You Can Drive with Your Thoughts? Video: http://bit.ly/et8Qzs 10x Productivity Myths: Where's the 10x Difference in Compensation? Nice analysis by Steve McConnell http://is.gd/8R4SsZ |
|
Quick Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Contact Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
email:
mbarr@netrino.com
phone:
866.78.EMBED
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|