Embedded Systems Design - August 2008 - (Page 46) 0808esd.p45to48 7/17/08 12:01 PM Page 46 break points cus with unerring intensity on just that result. Ignore all side issues. Build just enough code to get the desired result. Real systems need a spec that defines what the product does; a rapid prototype needs a spec that spells out what won’t be in it. More than anything you need a boss who shields you from creeping featurism. We know that a changing spec is the bane of real systems; surely it’s even more of a problem in a quick-turn model system. Then you’ll need an understanding of what deciSOFTWARE This is not a skeleton of the final code, sions will be made as a rePROTOTYPES waiting to be fleshed out after sult of the prototype. If the We’re paid to develop firmware that is management puts in their two cents. I’m user interface will be pretty much constant no matter correct—or at least talking about truly disposable code. what turns up in the modcorrect enough—to eling phase, jump into final form a final product, product development. If you know the run a cable from the sneaker to a defirst time, every time. We’re the highanswer, don’t ask the question. velopment system so I could change tech civil engineers, though at least Define the deadline. Get a protothe LED’s parameters in seconds we have the luxury of fixing mistakes type up and running at warp speed. while the MBAs argue over the corin our creations before releasing the Six months or a year of fiddling rect settings. product to the cruel world of users. around on a model is simply too long. Although we’re supposed to build The raison d’être for the prototype is GROUND RULES the system right the first time, we’re to identify problems and make Any prototype will fail unless the caught in a struggle between the changes. Get these decisions made goals are clearly spelled out. computer’s need for perfect instrucearly by producing something in days The best prototype spec is one tions, and marketing’s less than clear or weeks. Develop a schedule with that models risk factors in the final product definitions. The B-schools many milestones where non-developproduct. Risk comes in far too many are woefully deficient in teaching ers get a chance to look at the product flavors: user interface (human intertheir students—the future product action with the unit, response speed), and fiddle with it a bit. definers—about the harsh realities of development problems (tools, code working in today’s technological enTHE CODE speed, code size, people skill sets), vironment. Vague hand waving and The goal of a prototype is to resolve “science” issues (algorithms, data rewhite-board sketches are not a produnknowns, not to build a final prodduction, sampling intervals), final uct spec. They need to understand uct. Yet when the boss sees something system cost (some complex sum of that developers must be unfailingly working he’s inclined to ship. A hardprecise and complete in designing the engineering and manufacturing ware prototype looks ugly; there are a costs), time to market, and probably code. Without a clear spec, the engizillion green wires all over the PCB. other items as well. neers, by default, will create the spec. Those green wires are also in the softA prototype may not be the apMost of us have heard the “but ware version but just aren’t visible. propriate vehicle for dealing with all that’s not what I wanted” response “Working” doesn’t mean maintainrisk factors. For example, without from management when we demo able, reliable, or even tested, so it’s wise building the real system it’ll be tough our latest creation. All too often the to create a prototype that might work, to extrapolate code speed and size customer—management, your boss, but that isn’t shippable. So I’m infrom any prototype. or the end user—doesn’t really know clined to eschew C and use really high The first ground rule is to define what he wants until he sees a working level “languages” like Visual Basic. Or the result you’re looking for. Is it to system. The solution is a prototype of the perfect a data-reduction algorithm? To Excel macros. The goal is to get something going now. Use every tool, no get consensus on a user interface? Fosystem’s software, running a minimal Besides, who wants to redo a project? Most of us love the challenge of making something work but want to move on to bigger and better things, not repeat our earlier efforts. Hardware now suffers from the same ills. Reprogrammable logic means the hardware is nothing more than software. Slap some smart chips on the board and build the first production run. You can (hopefully) tune the HDL to make the system work despite major logic errors. subset of the application’s functionality. This is not a skeleton of the final code, waiting to be fleshed out after management puts in their two cents. I’m talking about truly disposable code. Most embedded systems do posses some sort of look and feel, despite the absence of a GUI. Even the lightup sneakers kids wear have at least a “look.” How long should the light be on? Is it a function of acceleration? If I were designing such a product, I’d 46 AUGUST 2008 | embedded systems design | www.embedded.com http://www.embedded.com
Table of Contents Feed for the Digital Edition of Embedded Systems Design - August 2008 Embedded Systems Design - August 2008 Contents Number Include Parity Bit Programmer's Toolbox Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications Wanted: Industry Standards for Benchmarking Embedded VMM Hypervisors Achieving Cache Coherence in a MIPS32 Multicore Design Memory Allocation in C Advertising Index Break Points Marketplace Embedded Systems Design - August 2008 Embedded Systems Design - August 2008 - Embedded Systems Design - August 2008 (Page Cover1) Embedded Systems Design - August 2008 - Embedded Systems Design - August 2008 (Page Cover2) Embedded Systems Design - August 2008 - Embedded Systems Design - August 2008 (Page 1) Embedded Systems Design - August 2008 - Embedded Systems Design - August 2008 (Page 2) Embedded Systems Design - August 2008 - Contents (Page 3) Embedded Systems Design - August 2008 - Contents (Page 4) Embedded Systems Design - August 2008 - Number Include (Page 5) Embedded Systems Design - August 2008 - Number Include (Page 6) Embedded Systems Design - August 2008 - Number Include (Page 7) Embedded Systems Design - August 2008 - Number Include (Page 8) Embedded Systems Design - August 2008 - Parity Bit (Page 9) Embedded Systems Design - August 2008 - Parity Bit (Page 10) Embedded Systems Design - August 2008 - Programmer's Toolbox (Page 11) Embedded Systems Design - August 2008 - Programmer's Toolbox (Page 12) Embedded Systems Design - August 2008 - Programmer's Toolbox (Page 13) Embedded Systems Design - August 2008 - Programmer's Toolbox (Page 14) Embedded Systems Design - August 2008 - Programmer's Toolbox (Page 15) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 16) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 17) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 18) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 19) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 20) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 21) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 22) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 23) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 24) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 25) Embedded Systems Design - August 2008 - Cover Feature: Virtualization for Embedded X86 Multiprocessor Applications (Page 26) Embedded Systems Design - August 2008 - Wanted: Industry Standards for Benchmarking Embedded VMM Hypervisors (Page 27) Embedded Systems Design - August 2008 - Wanted: Industry Standards for Benchmarking Embedded VMM Hypervisors (Page 28) Embedded Systems Design - August 2008 - Wanted: Industry Standards for Benchmarking Embedded VMM Hypervisors (Page 29) Embedded Systems Design - August 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 30) Embedded Systems Design - August 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 31) Embedded Systems Design - August 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 32) Embedded Systems Design - August 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 33) Embedded Systems Design - August 2008 - Achieving Cache Coherence in a MIPS32 Multicore Design (Page 34) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 35) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 36) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 37) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 38) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 39) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 40) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 41) Embedded Systems Design - August 2008 - Memory Allocation in C (Page 42) Embedded Systems Design - August 2008 - Advertising Index (Page 43) Embedded Systems Design - August 2008 - Advertising Index (Page 44) Embedded Systems Design - August 2008 - Break Points (Page 45) Embedded Systems Design - August 2008 - Break Points (Page 46) Embedded Systems Design - August 2008 - Marketplace (Page 47) Embedded Systems Design - August 2008 - Marketplace (Page 48) Embedded Systems Design - August 2008 - Marketplace (Page Cover3) Embedded Systems Design - August 2008 - Marketplace (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.