Embedded Systems Design - August 2008 - (Page 43) 0808esd.p09, 43 7/17/08 11:30 AM Page 43 ad index code and reuse it. I’ve been doing it for 25 years now. The products I currently from page 9 ship contain pieces of code I first wrote that long ago. To be sure, I give some to be very tempting candidates for this thought to the interface when I write. abstraction), the decision to use Java Yes, some of the pieces have evolved instead of C could make a 2:1 impact over the years. Yes, there is some time on their electric bill! That is not down spent on adapting it to the new need, in the noise! which detracts from the productivity I’m all in favor of leveraging the gain. However, there are significant productivity of programmers (includgains in two areas: first, the software aring my own), but we need to come to chitecture of the project is already specterms with some hard facts. The first is ified because of the reuse so I don’t that interpreted code (including JIT have to cominvent pile) Why are we throwing so much effort it from by defdown a guaranteed rat hole? scratch inition every time, and second, every chunk of can never be competitively efficient for code dropped in from a previous projproduction. Anything that can be resolved once at compile time should not ect is a chunk of code that has been debugged and field tested, hence the debe reinvented every time a function is bugging cycle is shortened and the called. This is a matter of fundamental reliability increased. physics and cannot be circumvented. I have standardized on a single Why are we throwing so much effort CPU family so even my driver developdown a guaranteed rat hole? Second, that energy should be more productive- ment is minimized, as is my learning ly channeled at techniques that increase curve, both on the hardware and the tools. Every time a new project comes the level of abstraction while providing in the door, I look for a recently comoptimization that closes the performpleted project most like the new one ance gap. Higher levels of abstraction and copy the entire project into a new offer opportunities for optimizations directory. Then I delete what doesn’t that the programmer might not think apply and start changing and adding to of or recognize and that would be prewhat is left. I can turn out a fully decluded by details that must be specified bugged control project with graphic at lower levels of coding. Maybe a state machine with an unusual assortment of LCD and touch, serial, and Ethernet in state values would work more efficient- a matter of a few weeks. I can also port to new hardware in a matter of days— ly than anything the programmer enviall in C with judicious use of assembly. sioned. Maybe a lookup table would be That’s my version of reuse. It’s the a better solution than a numerical algoonly version I know of that really rithm or set of branches. Its similar to works! what a switch() statement offers a C —Wilton Helm compiler—the freedom to consider difEmbedded System Resources ferent ways of accomplishing the task. Golden, CO Sadly, we’ve probably spent 100x as many man-hours tweaking JIT runtimes as we have doing this sort of exWe welcome your feedback. Letters to the editor may be edited. Send your comments to ploration. Richard Nass at rnass@techinsights.com or As far as code reuse, the only techfill out one of our feedback forms online, nique I know of that works is to write under the article you wish to discuss. Parity bit Advertiser, URL Page ALTERA CORPORATION, www.altera.com CV4 CMX SYSTEMS INC, www.cmx.com 12 COGENT COMPUTER SYSTEMS, www.cogcomp.com 47 COVERITY INC, www.coverity.com 22 EMAC INC, www.emacinc.com 47 EXPRESS LOGIC, www.rtos.com 4 GREEN HILLS SOFTWARE, www.ghs.com 1 HI-TECH SOFTWARE www.microchip.htsoft.com/portal/ESD_20 47 IBM IT, www.ibm.com/takebackcontrol/jazz 6–7 INTEC AUTOMATION INC, www.steroidmicros.com 47 KEIL SOFTWARE, www.keil.com 28 LUMINARY MICRO www.LuminaryMicro.com/StellarisMeans 41 LXD INC, www.lxdinc.com 13 MENTOR GRAPHICS, www.mentor.com/nucleus CV3 MICRO DIGITAL, www.smxrtos.com/usb 15 MICROCHIP TECHNOLOGY, www.myPIC32.com 36 MONTAVISTA SOFTWARE, www.mvista.com/vision 39 MOUSER ELECTRONICS, www.mouser.com 8 NATIONAL INSTRUMENTS www.ni.com/greenengineering 10 NATIONAL SEMICONDUCTOR www.national.com/powerwise 19 PERFORCE SOFTWARE, www.perforce.com 21 SEGGER MICROCONTROLLER, www.segger.com 29 SMART BEAR SOFTWARE, www.codecollaborator.com 44 SMART BEAR SOFTWARE, www.codecollab.com 47 SYMBIAN SOFTWARE LTD www.symbian.com/tenyears 25 TECH TOOLS, www.tech-tools.com 47 TECHNOLOGIC SYSTEMS, www.embeddedARM.com 33 TENASYS CORPORATION, www.tenasys.com/multicore 26 TERN INC, www.tern.com 47 TEXAS INSTRUMENTS, www.ti.com/5xx 2 THE MATHWORKS, www.mathworks.com/mbd CV2 ADVERTISING SALES MEDIA KIT: www.embedded.com/mediakit Management TechInsights 600 Harrison St., 5th Flr. San Francisco, CA 94107 James Lonsdale-Hands Vice President TechInsights Events (214) 365-9900 jlonsdalehands@ techinsights.com Stephen Corrick Vice President of Sales (415) 947-6651 scorrick@ techinsights.com Emerging Accounts North America TechInsights 4601 West 6th St., Ste B Lawrence, KS 66049 Sarah Stalker National Sales Mgr. (785) 838-7558 sstalker@ techinsights.com Advertising Coordination and Production United Business Media 600 Community Drive Manhasset, NY 11030 Pete C. Scibilia Production Manager (516) 562-5134 pscibili@ubm-us.com www.embedded.com | embedded systems design | AUGUST 2008 43 http://www.altera.com http://www.cmx.com http://www.cogcomp.com http://www.coverity.com http://www.emacinc.com http://www.rtos.com http://www.ghs.com http://www.microchip.htsoft.com/portal/ESD_20 http://www.ibm.com/takebackcontrol/jazz http://www.steroidmicros.com http://www.keil.com http://www.LuminaryMicro.com/StellarisMeans http://www.lxdinc.com http://www.mentor.com/nucleus http://www.smxrtos.com/usb http://www.myPIC32.com http://www.mvista.com/vision http://www.mouser.com http://www.ni.com/greenengineering http://www.national.com/powerwise http://www.perforce.com http://www.segger.com http://www.codecollaborator.com http://www.codecollab.com http://www.symbian.com/tenyears http://www.tech-tools.com http://www.embeddedARM.com http://www.tenasys.com/multicore http://www.tern.com http://www.ti.com/5xx http://www.mathworks.com/mbd http://www.embedded.com/mediakit 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.