New Age Micro - Embedded Software Development

| email us | home

New Age Micro New Age Micro logo

embedded system design software development testing programming Linux

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 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:

  • 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.
  • 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.
Engineering Services | Embedded System Design | Custom Software | Linux Programming | Software Migration | Design Verification | Consulting Services | Testing Services | Employment
©2007-2008 by New Age Micro LLC - all rights reserved