Embedded Muse 141 Copyright 2007 TGG February 19, 2007
You may redistribute this newsletter for noncommercial purposes. For commercial use contact email@example.com.
EDITOR: Jack Ganssle, firstname.lastname@example.org
- Editor’s Notes
- Embedded World 2007
- Free Books
- Tools & Tips
- Book Reviews
- Joke for the Week
- About The Embedded Muse
Did you know it IS possible to create accurate schedules? Or that most projects consume 50% of the development time in debug and test, and that it’s not hard to slash that number drastically? Or that we know how to manage the quantitative relationship between complexity and bugs? Learn all this and much more at my Better Firmware Faster class, presented at your facility. See https://www.ganssle.com/brochure-onsite.pdf .
Or, come to Boston May 4, where I’ll present this class at the Sheraton Braintree hotel. Registration and other info here: https://www.ganssle.com/classes.htm . You’ll earn 0.7 Continuing Education Units, learn a lot, and hopefully have a bit of fun, too.
Several readers sent a wonderful picture of the first disk memory device being prepared for shipment. A forklift strains to load the unit into a cargo plane. IBM’s RAMAC unit, appearing in 1956, used 50 two-foot diameter disks to store a measly 5 MB! It leased for $35,000/year. According to the Department of Labor’s Inflation Calculator, that’s a whopping $259,411 in today’s dollars.
See https://www.ganssle.com/misc/ramac.htm for the picture, and a comparison to more modern technology. If you’re in Mountain View, CA, do stop by the Computer History Museum (http://www.computerhistory.org/ ) to see their RAMAC components.
Dan Saks pointed me to a very interesting article he wrote about compile-time assertions (https://www.embedded.com/electronics-blogs/programming-pointers/4025549/Catching-errors-early-with-compile-time-assertions ). In it he shows some techniques that mimic assert()… but toss an error at compile-time, rather than run-time. It’s worth reading.
If you follow Slashdot you no doubt saw mention of D-Wave’s 16 qubit quantum computer, demonstrated last week over the ‘net at the Computer History Museum. Steve Leibson wrote a much better piece than anything else I’ve seen about the machine, and the demo, which is here: http://www.edn.com/article/CA6416905.html . Several correspondents pointed out some opinions that suggest the demo might have been a hoax. Time will tell. But it’s exciting to think these sorts of machines will offer an alternative to the brute-force approaches used today to solve thorny NP-Complete problems.
Embedded World 2007
Jakob Engblom attended Germany’s big embedded show and sent this report: “Just wanted to send you some quick notes from the Embedded World 2007 show in Nuremberg. This is a major show as you know, and it is interesting to see that some really powerful debug tools are coming out.
“Static analysis was a popular theme this year. There were at least 6 static MISRA C compliance checkers on the floor (Green Hills, IAR, Cosmic as part of compiler suites, LDRA, Polyspace, QA Systems as stand-alone tools). Green Hills also revealed that static analysis of C programs is an always-on part of their Multi 5.0 tool suite. Polyspace and Coverity exhibited.
“There were also two static timing analysis companies with very different approaches. AbsInt (www.absint.de) is busy doing heavy complete static analysis of CPU behavior to determine the WCET from a model. Powerful stuff, and I realized that NASA might be interested in their analyzer for the PPC750 series, considering the popularity of the RAD750 board in space missions. They also check stack depth.
“Rapita Systems (www.rapitasystems.com) has a different approach based on structured measurements on real hardware. They then combine measurements with static analysis to determine a probabilistic measure of the WCET. An interesting side-effect of their approach is that it is easy to see the variability of the processor used as it has a strong effect on the shape of the execution-time probability curve. They also do some cache checking and optimization tools. They help their customers optimize the worst-case execution time of a program, by pointing out the worst-case path and evaluating changes to the program in the light of WCET.”
The book giveaway is complete. Actually it was complete an hour after the last Muse was released. Marybeth was flooded with nearly 400 requests from 31 countries for the 16 books. I’m sorry that we couldn’t satisfy all of those. It was great fun, and we had some wonderful emails from readers.
In the meantime I’m looking for ways to get more books to more folks. My input queue of computer/electronics books is currently 3 feet, 6.5 inches tall, so eventually there will be more from that pile.
It’s interesting to see which books were most-requested. The Art and Science of Analog Circuit Design led by far. The DSP Handbook, Analog Interfacing to Embedded Microprocessors, Embedded Systems Demystified, and Foundations of Analog and Digital Electronic Circuits all grouped closely together as popular books, followed by The Definitive Guide to How Computers Do Math. All of the rest were far behind these, confirming once again that we embedded folks live at the nexus of the analog, digital and software worlds.
Donald Dorson had a major catastrophe recently: “My small oceanographic instrumentation company, Bathy Systems, Inc., just had a major disaster. My office (and home) burned two weeks ago.
“I have been using Motorola 6805 CPUs and programming them with a TECI TCPM3 programmer. I talked to Bob Johnson at TECI, but he no longer has any hardware.
If anyone can help him, please drop him a note at email@example.com.
This is at least the third fire I’ve heard about in the last month or two that has taken out significant embedded assets. We’ve known for a long time how critical it is to keep off-site backups of data. Hurricane Katrina taught us that those backups better be, at the very least, in a different city. But how can one deal with the loss of obsolete or antiquated but-still-important development platforms?
Steve Hudson writes: “I've got an old product that my boss wanted to resurrect. It uses a TI TMS320E15 DSP processor, which is about 20 years old! We've been able to read out the HEX files from the old parts (they had internal EPROM), but I'd like to try and disassemble them. I've not had much luck doing web searches for something this old, and TI couldn't offer any info either. Do you know of anyplace to look for a disassembler for this?”
If anyone has a pointer, let me know and I’ll pass it along to Steve.
Tools & Tips
Stephen Irons disagreed with a comment made in the last Muse about naming conventions for files. He wrote: “Alas, we in the computer industry learned nothing from the Y2K non-event. We have long filenames, we have huge hard-disks, yet only 7 years later we have forgotten that dates before 2000 existed. We try to save a few bytes (2, or even 8 bytes if you use UTF32 characters) on a 2-digit year.
“Please, PLEASE, recommend to your readers that they always use at least a 4-digit year (when naming files).
“I leave the Y10K problem to my successors.
“ * 2-digit years
“ * abbreviated variable names (abbrVarNames?)
“ * rushing in to code
“ * saving for a rainy day
“I think they are all part of our human tendency to do immediately what is easy now rather than put in a bit more effort for future gain. I am sure Mark Twain or Hemmingway or someone (as far back as Shakespeare or Aristotle) will have put it much better than I can.”
Dave Kellogg like TrackBack: “A fairly new tool that I find very useful is TrackBack, from Scientific Toolworks (www.SciTools.com). TrackBack runs in the background and saves a copy of a file every time it is written to disk. Thus it provides a sort of poor mans VCS by keeping every version of each file Im working on, prior to committing it to the official Version Control. TrackBack is very configurable regarding which directories and files to back up, and works with any type of file.
“I find TrackBack to be an extremely powerful enabler, because I am more confident in moving forward rapidly because I know that I can back-track if needed.
“A free eval is available, and installation is painless. Recommended as very worthwhile insurance.”
Prolific author Bruce Powel Douglass’s new work, Real-Time UML Workshop for Embedded Systems, is meant as a companion volume to his Real-Time UML, Third Edition: Advances in the UML for Real-Time Systems. The latter is a lecture-style book that advances principles without examples; the new book complements the first by describing in detail embedded UML on two different, non-trivial, systems.
If you’ve read Bruce’s other works, or have seen him lecture, the style will be very familiar: precise while engaging, humorous at times yet clearly focused on getting complex ideas across in an accessible way.
Chapter 1 is a very brief, and very fast, introduction to UML. If you’re unfamiliar with the concepts it’ll sail over your head. But that’s why this is a companion work; it works best when coupled with the other, aforementioned, book.
Most of the rest of the volume is focused on Harmony, a process particularly appropriate for embedded development, that falls somewhere between light agile methods and heavier approaches like the CMM. Bruce’s succinct definition of “process” is appealing: “A process is an integrated set of workflows.”
The initial description of Harmony will leave newcomers mystified. But slog on and, sort of like peeling layers from an onion, Bruce reveals the details.
Chapter 5, Object Analysis, is worthwhile for anyone wanting to learn more about decomposing a system into component objects.
A CD includes a working copy of the Rhapsody UML tool, with models of the described systems.
The book isn’t an easy read like one from Microsoft Press. You’ll have to think hard and work out the solutions. Do so, especially with Bruce’s other book, use the tool, and you’ll get a good, practical, hands-on introduction to UML.
USB Mass Storage, by Jan Axelson, is the latest in her ultra-practical books aimed at developers who need code and information to get a job done now. USB storage devices are popping up everywhere, both in embedded systems and, jeez, even as jewelry. Pop open a USB stick and you’ll see flash plus a microcontroller that’s slinging some pretty complex data around using a non-trivial heap of code.
Jan covers the bulk-only transport protocol, SCSI, MultiMediaCard and SPI protocol, for MMC, SD and CF cards, employing both hard disks and flash memory. The book starts with basic descriptions of the hardware and protocols, and moves on to provide complete C code (implemented on a PIC but reasonably portable) for all functions.
This book complements Jan’s USB Complete, which is the best reference for general information on building systems using USB.
If you’re building a USB storage system, get this book. There’s no better reference. And do go to her information-packed website (www.lvr.com ).
Joke for the Week
Eric Smith sent a link to this datasheet for the widely-used Turbo-Encabulator. Most of us mastered the technology in EE101, but a refresher is always useful. Also note that a sales pitch, previously covered in the Muse, can be found here: http://video.google.com/videoplay?docid=5125780462773187994 .
For a number of years now, work has been proceeding to bring perfection to the crudely conceived idea of a machine that would not only supply inverse reactive current for use in unilateral phase detractors, but would also be capable of automatically synchronizing cardinal grammeters. Such a machine is the "turbo-encabulator." Basically, the only new principle involved is that instead of power being generated by the relative motion of conductors and fluxes, it is produced by the medial interaction of magneto-reluctance and capacitive directance.
The original machine had a base plate of prefabulated amulite, surmounted by a malleable logarithmic casing in such a way that the two spurving bearings were in direct line with the pentametric fan. The latter consisted simply of six hydrocoptic marzelvanes, so fitted to the ambifacient lunar waneshaft that side fumbline was effectively prevented. The main winding was of the normal lotus-0-delta type placed in panendermic semiboiloid slots in the stator, every seventh conductor being connected by a nonreversible tremie pipe to the differential gridlespring on the "up" end of the grammeters.
Forty-one manestically spaced grouting brushes were arranged to feed into the rotor slipstream a mixture of high S-value phenylhydrobenzamine and 5% remanative tetryliodohexamine. Both of these liquids have specific pericosities given by P=2.5Cn6.7 where n is the diathetical evolute of retrograde temperature phase disposition and C is Chlomondeley's annular grillage coefficient. Initially, n was measured with the aid of metaploar refractive pilfrometer (for a description of this ingenious instrument, see Reference 1), but up to the present, nothing has been found to equal the transcendental hopper dadoscope (2).
Electrical engineers will appreciate the difficulty of nubing together a regurgitative purwell and a supramitive wennelsprock. Indeed, this proved to be a stumbling block to further development until, in 1942, it was found that the use of anhydrous nangling pins enabled a kryptonastic boiling shim to the tankered.
The early attempts to construct a sufficiently robust spiral decommutator failed largely because of a lack of appreciation of the large quasi-piestic stresses in the gremlin studs; the latter were specially designed to hold the roffit bars to the spamshaft. When, however, it was discovered that wending could be prevented by a simple addition to the living sockets, almost perfect running was secured.
The operating point is maintained as near as possible to the h.f. rem peak by constantly fromaging the bitumogenous spandrels. This is a distinct advance on the standard nivel-sheave in that no dramcock oil is required after the phase detractors have been remissed.
Undoubtedly, the turbo-encabulator has now reached a very high level of technical development. It has been successfully used for operating nofer trunnions. In addition, whenever a barescent skor motion is required, it may be employed in conjunction with a drawn reciprocating dingle arm to reduce sinusoidal depleneration.
1. Rumpelvestein, L.E., Z. Elektro-technistatisch-Donnerblitz vii.
2. Oriceddubg of the Peruvian Academy of Skatological Sciences, June 1914.