Embedded Software Development
We have experience with over a dozen microcontroller platforms and first hand experience with the trend in development tools.
The cost and time required to develop software for embedded
products has been on a continuous downward trend. This favorable trend is credited to improvements in software tools and emulators.
A decade ago, an ICE (In Circuit Emulator) was required for the initial debugging phase. They cost upward of $10,000,
were delicate and problematic, and required modifications to the target in order to connect it. Today, the ICE functionality
has been incorporated into the microcontroller, and a simple connector (JTAG) is provided for the emulator connection. The cost
of the emulators has dropped by 50% and the functionality has been improved in many ways.
The cost of Intel Atom based product debug is dramatically assisted by the Macraigor JTAG debugger. At a cost of less than $800 it provided us with an excellent solution to step through the startup of our virgin board. It is compatible with the Intel debugger and also compatible with Macraigor's OCD Commander debugger at no additional charge.
The sections below summarize our experience with the design and development process. We are interested and open to other tools
and technologies, as well as success and horror stories. If you're willing to share usefull information, we'd like to hear from you.
|
Real Time Operating System
Embedded products require a Real Time Operating System to determine and switch to software routines as needed to accomplish
the desired functionality of the product. We have a strict rule that it is essential to have the source code for any operating system
being used in an embedded products. We've used:
- Linux configured with real time processing, used for microprocessors with memory management.
- Embedded Linux (uCLinux) - the only reliable "real time" implementation of Micro-Linux that we know of, is from MontaVista Software.
Beware of "compatibility hazards" between various versions of Linux and Open Source Software.
- Windows CE / Windows NT - excellent tools, the hazard is that you can't build an operable code from the sources.
- Nucleus Plus - lean mean fully featured operating system. Worked excellently in Process Controllers. The hazard here is that we've heard
rumors that it's being phased out.
- TI's DSP BIOS - an excellently architected operating system for TI's DSP products. The hazard here is the complexity. You need to purchase
a BIOS source license to see the details, then you see source code for a given DSP dynamically generated at the beginning of the build process.
It's difficult the figure out the functionality but once you get past that you see a lean-mean O.S.
- Custom Operating System - for simple devices where the rules to run software routines are simple, and the communications between
software routines is also simple.
|
Host-Target Tool Suites
Software development for an embedded product always involves a Host/Target environment. The software is written on the Host and
executed on the Target. It requires special features from the Tool-Suite (aka ToolChain), and the debugging hardware, in order to accomplish this:
- Network Connection - the Host communicates with the Target Debugger (Emulator) over a Local Area Network. It provides flexibility, allowing multiple
Hosts to communicate (not at the same time) with the Target. A connection from a Windows
machine is used to accomplish some tasks, and a Linux Host for others. EPI offers a large selection of
configurations that work extremely well.
- Intel Embedded Development for Atom Processors
- TI DSP - Spectrum Digital provides emulators that connect to several TI microcontrollers
and DSPs. They work well to connect to TI DSP used as a co-processor in the Target product.
- Multiple Concurrent - where multiple Host machines are used in the same debugging session. We've had 2 emulators active at the same time.
A Windows Host connected to a DSP co-processor in the Target, while a Linux Host is connected to a uCLinux main processor in the Target.
Coordinating the breakpoints is a real challenge.
- Intel's Atom Development ToolKit along with Macraigor's JTAG debugger attachement. We warn against using Intel's compiler in this toolkit as it is significantly incompatible with the rest of the world in several areas. Intel has offered a refund to those that have been bitten. The Atom processor family provides a low power and high performance solution and New Age Micro has developed a product based on the Atom-Z530/US15W.
|