Software and Application Case Study

A New Zealand corporate approached Bluewater Systems to port an existing DOS application on aging x86-based hardware to a modern ARM platform based around the StrongARM SA-1100 from Intermec. The application required an audio codec with complex DSP algorithms for material analysis. The application would initially be for internal use but plans existed for worldwide sales.

A short feasibility study established that much of the existing code could be re-used but that the codec interface and GUI would need replacing. Also, a detailed benchmarking analysis indicated that the DSP code would likely need replacing for performance reasons.

A number of test audio samples were provided for development. These would enable us to ensure that the algorithms remained correct during development. A fixed price bid was provided for the work.

The unit logged data during operation. We used a compact flash card for this, and allowed a simple X-Modem download to a PC through an in-built serial port. Ethernet-based ftp was also supported, but seldom used in practice due to the relative complexity of this. A custom application approach was rejected as it would require installation on all computers which might need to receive data from the units.

DEVELOPMENT51-swat-unitThe GUI was developed with the aid of Trolltech's QT under Linux. This followed along with the existing system, but with more functionality, such as a GUI setup program to make changes to the large parameter set during operation.

The existing DSP algorithms made use of floating point instructions which were not present on the chosen ARM platform, and were therefore emulated (slowly) in software. We provided two solutions to this problem. Firstly we tested and enabled an accelerated floating point library to improve performance. Secondly we made use of in-house integer-based DSP algorithms to substantially improve performance. An option was provided in the application to select which DSP algorithms to use.

Intermec's chosen OS for the platform was Windows CE, but the client required Embedded Linux for the greater stability and customisation available. With the assistance of Intermec (in the form of hardware documentation) we ported Linux to the platform complete with power management and boot-loader compatibility.

The Linux application is being used extensively by the client and has proven to be a very successful replacement for the previous units. Users include non-computer-literate staff, who have been able to use the product with few problems. The application generates very similar results to the previous platform, even through the hardware, software and audio codec have changed completely.