Many new developments use a combination of hardware and software to achieve the end product. Generally, these developments require special skills to make the most expeditious tradeoffs. For example, the generation of a dial tone can be implemented through specialized hardware, timers embedded in a modern microprocessor, or using general OS level timing functions. The selection of an implementation depends on cost and performance targets for the overall system.
Embedded linux is becoming the platform of choice for general development of an embedded system. This combines a stable general purpose operating system with a wealth of applications that can be used to develop unique end user applications. The implementation of many infrastructure elements of a system, like a web based configuration interface, can be realized quickly and efficiently using open source software.
We have over 20 years experience architecting and building embedded systems including both hardware and software developments. The last few years have been spent honing our expertise in Linux running on Intel XScale and Motorola ColdFire systems. Work has included both driver level, infrastructure and applications development.