Embedded Insight Archives


Embedded Insight

The Monthly Newsletter for Embedded Systems Professionals

Published by Base2 Software Design, Inc.

May, 2002


  • Rapid Embedded Software Development
  • Base2 Specialties
  • Philips LPC Microcontrollers

Rapid Embedded Software Development

Does this scenario sound familiar? You've been asked to write the software for a new device from the ground up to make a trade show in 90 days. The only specifications have been written down on a napkin after a weekend brainstorming session. The device is complex enough that a team of software and electrical engineers are going to be working full-throttle until the deadline.

OK, this may be a bit of an exaggeration, but this type of scenario occurs all the time. When it comes to making a product like this a reality, it's very important to keep the software development quick and on schedule. For a project on the fast-track, and especially with today's high-tech products, software is almost always on the critical path. Here are a few thoughts on how to keep your software development quick and nimble.

Plan and Process

Before one line of code is written, before a microcontroller and toolchain are selected, some planning must be done. 90 days is not a lot of time to put together firmware for a device, so the more variables you can eliminate by planning the better. Your plan should include the scope of the project, what tasks should be done, and when those tasks will be completed.

Then you can execute your plan by implementing a software development process. The key to your development process is that it should be easy to follow, flexible, and responsive to changing requirements and day-to-day discoveries. Here's one possible process:

  1. Specification
  2. Design
    * Design architecture
    * Select microcontroller
    * Select off-the-shelf software components
    * Design custom device drivers and application
  3. Implementation and debug
  4. Integrate and debug
  5. Review. Repeat steps 1-4 as necessary until done.

This process is reminiscent of a spiral development model where development is done is small iterative steps until the whole is completed. Everything is done quickly and efficiently without undue time spent on any one step or iteration.

Don't make the mistake of not following a software development process. Flying by the seat of your pants is not a good way to ensure that the software you're creating will make it to the trade show on time.

Off-the-Shelf (OTS) Software

One of the biggest time savers is the use of off-the-shelf software. Indeed, the use of the OTS software often means the difference in making the deadline or missing it. Sure, you probably have the talent and experience to write everything the device needs, but time is of the essence. It's time to make the trade-off of spending a little money to decrease development time.

One good resource for OTS software is the Buyer's Guide Issue of Embedded Systems Programming magazine. They list dozens of vendors of real-time operating systems, TCP/IP stacks, graphics libraries, device drivers, board support packages (BSPs), hardware abstraction layers (HALs), and many, many other modules. If you don't get ESC magazine, you can reach the buyer's guide on the web at http://www.mediabrains.com/client/embedded/bg1/search.asp.

While OTS software is good, it is possible to have too much of a good thing. For example, if your project needs two or three major software components that are OTS, that's probably going to be OK. Integration problems can be overcome relatively quickly, and you can get on with writing the custom part of the firmware. If you're selecting five or six OTS components all from different vendors, you're just asking for trouble. In this case, the best thing to do is to find as many OTS components from a single vendor as possible since those modules were probably designed to work together.

Dealing with Changes

Changes to the project are a fact of life. Even though the scope of the project is defined at the beginning of the project, changes are still made. It is extremely important to identify what changes can and cannot be accommodated early in the project. Here is where the planning that was previously done pays off. And it's also the reason there is a review phase in every iteration of the software development process.

Some changes you can plan for. For example, suppose your device needs removable media of some sort such as SmartMedia, CompactFlash, or MMC. MMC was chosen because of its size, but you also know that options need to remain open. In case the choice of removable media changes, you can design the software so that the access to the media is abstracted, and you can select a microcontroller that can handle the other media types. This planning doesn't necessarily mean that a change in media type will be a snap to accommodate, but it certainly means it will be possible without a major impact on the hardware and the software.

Development Rules of Thumb

Here are a few rules of thumb that help to make software development as rapid as possible. Keep in mind that these suggestions make tradeoffs in favor of speed of development. They should not necessarily be applied to the development of production software.

Keep it simple. The more complex the design, the more difficult it is to make modifications and to find and fix bugs.

Stick with what you know. Now is not the time to experiment with strange algorithms or unproven techniques. Time is short, so you should stick with what you know to get things done quickly.

The best design is the design that works. Don't worry about optimizing the code. Don't worry about making a module faster or use less memory. If it already works, it's done.

Develop breadth first, then depth. It's important to get the overall design up and running as soon as possible. This helps with flagging design problems early and gives the software development team a baseline from which to work.

Success at the Trade Show

"Rapid" is a word not often associated with software development. With proper planning and design, the software development cycle can be rather short and you can deal with problems and changes quickly. By using OTF software modules in conjunction with your custom software, you can finish your software on time and make a big splash at the trade show.

Base2 Specialties

Base2 Software Design specializes in the development of embedded software for medical devices and consumer electronics. We understand the requirements for these industries, and we try our best to help you meet your goals.

Medical device manufacturers need more than just working software. Among other things, you need to follow a software development process and provide supporting documentation for FDA scrutiny. We can help you with these requirements in addition to the normal software development activities.

In consumer electronics, speed is often the key. Your window of opportunity is closing fast. Maybe you need to get a demo running in a couple of months, and the only thing you have now is a drawing on a napkin. We have the experience to get the job done quickly. We'll work closely with the rest of the team to make sure things are done right the first time, so your product will be successful in the marketplace.

Philips 51LPC Microcontrollers

The Philips 51LPC series of microcontrollers is designed for applications requiring low pin count and low power consumption, i.e. small battery-powered devices. All members of this family currently have 20 pins. Out of these 20 pins, you can use up to 18 of them for I/O. Here are some of the features:

  • 8051-based processor (6 clocks per cycle, 2X faster than the original 8051)
  • selectable oscillator including internal RC
  • 20 MHz operation (6 MHz with internal RC)
  • up to 4 KB EPROM
  • 128 bytes of RAM
  • 32-byte EPROM (parameter storage, etc.)
  • 2 16-bit counter/timers
  • watchdog timer
  • UART
  • I2C port
  • 2 analog comparators
  • 4-channel 8-bit ADC
  • power monitor

The 51LPC family is similar to the Microchip PIC and the Atmel AVR families. However, since the 51LPC is based on the venerable 8051 core, old-time embedded hands will be familiar with it right away. There are several major vendors that provide tool support including Keil, Tasking, Hitex, Ceibo, and of course, Philips. A current list of tool vendors is available on the Philips website at http://www.semiconductors.philips.com/products/standard/microcontrollers/tools/lpc/.

Most models are available in DIP, SO, and TSSOP packages. Pricing is around $1.75 (Qty 1K). For more information about these processors, go to the Philips Semiconductor website at

Base2 Software Design, Inc.
39510 Paseo Padre Parkway, Suite 270
Fremont, CA 94538-4741

Phone: 510/745-7773
FAX: 800/883-4495


If you know anyone who would like to receive this informative newsletter, please forward this to them. They can sign up by sending an e-mail to mailto:info@base2software.com?Subject=Subscribe.

If this newsletter was sent to you in error or if you'd like to unsubscribe to our newsletter, simply send an e-mail to mailto:info@base2software.com?Subject=Unsubscribe.

You may use the contents of Embedded Insight in whole or in part if you include the following complete copyright notice and live links:

Copyright 2002, Base2 Software Design, Inc.
http://www.base2software.com. mailto:info@base2software.com.


© 2002-2009, base2 software design, inc.