Proprietary multi-core OS development

We undertook a project for one of our major customers to take a student-developed framework for an operating system for a new automotive multi-core processor and turn it into an integrated environment to auto-generate code and build files. This was a particular challenge as the existing code had not been developed to any process or standard and was known to have many bugs and limitations.

Not only were we able to correct the bugs, we also extended the system to support multiple processor variants, even adding a Java-based configuration tool and the facility to generate compiler settings and debugger projects automatically.

This represented a considerable challenge as it combined the most involved aspects of multi-core programming, cross-core synchronisation and data flows, a new tool-chain and prototype silicon.

Custom disk interface driver

We identified a requirement to support a variety of legacy disk interfaces for archival, restoration and recovery of data on obsolete media. We extended an existing primitive driver for a low-level floppy disk interface, improving its integration with the operating system and adding support for multiple new formats and encoding schemes. This was achieved by directly interfacing with the FPGA on the controller card to control the drive. The resultant signal data was processed to allow retrieval of data in various formats including those using FM, MFM and GCR encoding schemes


Video capture card driver

We have developed a driver and application for support of Brooktree and Conexant video capture processors, from the Bt8x8 chipset through to the Conexant CX2388x chipset as used on PCI video capture and television cards. This included programming the processor using its own dedicated RISC instruction set, as well as implementing display of the video buffer on screen via DMA or PIO, either using RGB or YUV via the overlay (“picture-in-picture”) feature. This also involved interfacing with a Philips tuner chip via the I2C interface.

This was later released to the open source community.