RoweBots

People delivering embedded software excellence

Embedded System Software


Embedded systems are computer systems that users don't really know are computers. Examples which are common include cell phones, automobile engine controls, telephone switches and even the printer on your computer. The interesting thing about all of these computer systems is that the user interacts with them using some very simple user interface and typically does one simple function. The user drives the car by operating some simple controls and many computers carry out complex operations so that this may happen.

Often, real-time systems are synonymous with embedded systems. This is because the systems interact with the real world and the real world often demands a timely response. For example, when you turn on your phone you expect a dial tone within a few seconds. If you press the gas pedal (accelerator pedal, throttle) in your car, you expect to go faster immediately and if you press the brake you expect to stop immediately. As you can see, many embedded systems are real-time systems too.

Embedded systems often involve signal processing. Signal processing can be done either digitally (digital signal processing or DSP) or analog. Today, almost all signal processing is done using digital signal processing and computers. A real world signal is converted to numbers in a computer using an analog to digital converter. These numbers are then processed in the computer using DSP techniques.

Some examples of digital signal processing embedded systems are things like telephone switches, mobile phones, internet modems and cars. For example, a telephone converts voice signals to digital signals at some point, and transmits digital signals to the other phone which are then converted back to analog signals which are output to your ear. If you've used early VoIP phones, sometimes the calls break up or are distorted. This is because the network is not keeping up with the real-time aspects of the signals, dropping some packets and having others arrive too late. The real-time performance is lacking in this case. DSP systems are common embedded real-time systems today.

The reliability of real-time and embedded systems is often a very critical issue. Telephones must work in emergencies, cars must not be dangerous, and critical communications over the internet must get through to the receiver. Often these systems have life and death interaction associated with them. For this reason, the reliability of the software is very important. This includes the reliability of the underlying run time systems as well as any algorithms that are implemented on top of the run time environment to implement a specific application - an ABS braking algorithm for example.

Real-time performance is a critical factor in many systems as well. If samples arrive late, the telephone call cannot be understood and the system is unreliable. If real-time response is a problem, the ABS system will not work correctly or the car engine will not run properly. Furthermore, the cost of implementation is lower if the performance of the software is better. A smaller processor or processors can be used which generally means that the cost will be lower. Price is always a major concern for volume embedded real-time DSP systems.

RoweBots provides powerful, proven embedded system software components for popular digital signal processors (DSPs), microcontrollers and microprocessors. This software is primarily used for implementing embedded real-time DSP systems. Each of our system software components is carefully crafted for maximum performance and reliability. We offer a wide array of products such as: single and multiprocessor DSP kernels, network stacks, embedded file systems, serial I/O, and DSP I/O libraries.

Embedded system software is our core business. Other companies offer software development services and broad support for a broad set of embedded applications. Our approach is much more focused on embedded DSP applications. First and foremost, we offer embedded software products - libraries, development IDEs, compilers and more. Second, we support embedded developers with the very best open source ecosystem that can be built. Third, we offer supporting services in the area of DSP algorithm design, system integration and configuration that customers general find to be the most demanding part of the embedded development system. Forth, we offer training to make the current job fast, easy and enjoyable.

Embedded system software is all about open source today. Our low cost, royalty free solutions are second to none. They offer the utmost in ecosystem support, tiny size and great performance. Open source technology is the way of the future because it can reduce the cost of developing, proving and maintaining software by spreading it over a far greater number of users. Our open source solutions include Eclipse, GNU C/C++ and our open source RTOS DSPnano along with a complete suite of I/O. Other open source components come from a variety of sources like OpenSolaris and uIP.

For additional general information on embedded system software for DSP and new multicore processors, follow the links below:

DSP RTOS

Multicore RTOS