Product Design Quote

Get a quote for a Product Design

» Find Out More

OS Port Case Study

The Challenge

A multi-national corporate approached Bluewater Systems to port uClinux (a modified version of the Linux OS) to their chosen hardware, the STLC1502. This chip was a Voice over IP (VoIP) solution based on the ARM7. Since the chip did not have an MMU, the full Linux kernel would not run.

The STLC1502 also included an audio DSP and a VxWorks port supplied by the manufacturer (ST). The client wanted a DSP driver to be developed to support the various functions of the DSP, such DTMF detection, tone generation and speech coding.

Peripherals to be ported included dual ethernet (with a hardware bridge), a 2x16 LCD, flash memory for JFFS2 filing system, an audio codec and various serial and I/O ports.

Our Approach

A short feasibility study established the extent of the OS porting project and produced a fixed price bid.

Acceptance tests were designed first. This involved selecting suitable tests for each part of the system in consultation with the customer. These were documented and provided a clear set of goals for completion.

Specifications were drawn up for the three parts of the system and the project was broken into three stages to for progress reporting and payment reasons.

Development

The OS kernel was first brought up with the required timer, UART and interrupt drivers. This was relatively straight-forward on the customer-supplied board.

The ethernet driver required special thought since the architecture of the unit fitted closely with two separate ethernet devices, yet they were combined into a single chip. Two separate MACs acted as a bridge between two network segments. This had to be coded into the standard Linux ethernet driver architecture.

The DSP driver included a number of channels for communication in each direction. An interrupt-based mailbox protocol was supported in the driver to provide maximum performance. In addition, a DSP API was developed which provided a high level application interface to the driver and the DSP.

A test program for the DSP API was developed to test each of the functions, many of them making use of the loopback function of the DSP. This enabled testing DTMF generation back to back with DTMF detection.

The OS port also involved obtaining and building suitable tools. uClinux has special tools which support relocating images, since no MMU is available to remap memory for each application. These tools were then used to build a suitable 'root disk', containing the required programs to allow the platform to start, as well as test programs and UNIX utilities.

The Outcome

The port was completed and passed all acceptance tests. The client was able to make use of the port for their own hardware design.