~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Firmware Update
- August 30, 2011
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
in this issue
-- 5 Dangerous Coding Standard Rules
-- Embedded Software Training in a Box
-- How to Enforce Coding Standards with PC-Lint
-- Industry News That's Not Boring! -- Register Early for Embedded Software Boot Camp and Save
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. |
|
5 Dangerous Coding Standard Rules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Over the summer I happened across a blog post by another firmware developer in which he presented ten C coding rules for better embedded C code. I had an immediate strong negative reaction to half of his rules and came to dislike a few more on reflection.
I don't know which scares me more: that these bad rules are out there on the Internet to be found via search engines or that the blogger's bio indicates he designs medical devices! But I do hope my counter-examples and proposed better rules will get you thinking about how to develop more reliable embedded software with fewer bugs. |
|
Embedded Software Training in a Box ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Netrino now offers the valuable embedded software training from its most popular live courses, including Hardware Interfacing in C and Multithreaded RTOS Programming, in a hands-on home/office-study package. This Embedded Software Training in a Box is a low-cost, self-paced way for firmware engineers to improve their knowledge and skills.
Each training kit includes a development board featuring a 96 MHz 32-bit floating point microcontroller and a mess of nifty peripherals (there's even a 3-axis accelerometer), a built-in JTAG debugger interface, the necessary cables, and two C/C++ compilers. You also get all of the slides, handouts, and source code used at our live Embedded Software Boot Camps. (Drill instructor not included!) |
|
How to Enforce Coding Standards with PC-Lint ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In an earlier newsletter, I introduced the concept of automatic enforcement of coding standards. One of the tools I have found to be indispensible for this purpose is the inexpensive PC-Lint. A number of PC-Lint options can be set to assist in the enforcement of Netrino's popular Embedded C Coding Standard. As a convenience to embedded programmers everywhere, I've just made public domain a configuration file to use this tool automate enforcement of coding standards.
|
|
Industry News That's Not Boring! ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Whatever Happened to Worst Case Analysis? http://bit.ly/quMqNu
Digital Watch Design for the 21st Century. Revolutionary ideas: http://nyti.ms/nmejgG C No Evil. These clever one-line preprocessor hacks could put a wrench in a whole program: http://bit.ly/mWPwiW Hacking Medical Devices for Fun and Insulin. Live from Black Hat 2011: http://bit.ly/oVjSct Exploring Binary: Ten Ways to Check if an Integer Is a Power Of Two in C. Code snippets included: http://j.mp/qaIApF Apple's MacBook batteries turn out to be embedded systems, albeit with poor security. Hacking details here: http://bit.ly/r8WlNt How Standards Proliferate. Cartoon: http://bit.ly/pyfUMe How to Measure Software Execution Times: http://bit.ly/j4OQ1A Old Calculator Web Museum: http://oldcalculatormuseum.com |
|
Register Early for Embedded Software Boot Camp and Save ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Should you prefer live training, the final public Embedded Software Boot Camp of 2011 will be held the week of October 17-21. This intense and fun hands-on educational program will quickly and dramatically improve the quality of the embedded software created by the individuals and teams who attend.
|
|
Quick Links ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
Contact Information ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
email:
mbarr@netrino.com
phone:
866.78.EMBED
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|