Services

Contract Embedded Software Development & Test

Either on your site, or at our own premises, we design, develop and test embedded real-time software for your project.  Target operating systems can be Linux, dedicated RTOS or even small dedicated embedded systems not requiring an OS.  We have experience of the full software development life-cycle including debugging new hardware platforms, Board Support Packages and bare metal bring-up using products such as U-Boot.  Related requirements such as support scripts and test systems using Python and BASH can be provided.

Development of Device Drivers for new hardware

Working from hardware specifications and register maps, we can produce device drivers for Linux or proprietary RTOSs.  We can also modify existing drivers to reflect hardware changes or port to new operating systems.

Hardware Abstraction Layers created

A complete abstraction layer can be created to isolate your application from the underlying hardware platform and operating system, this will greatly simplify migration of your application to alternative hardware, or allow one application to work on a number of hardware variants.

Porting of existing applications to new platforms

We can take your existing source code and migrate it to a new hardware platform, creating an abstraction layer if one does not already exist.

Prototype hardware bring-up

Using your hardware schematics and datasheets, we will create the necessary boot code and simple I/O code modules to bring your new hardware to life.  Then, using JTAG debuggers, Oscilloscopes and Logic Analyzers we investigate any potential problems with the hardware design.

Rapid development of demonstrator software to promote new hardware designs

If your formal software development programme will not be operational in time to provide early demonstrations of your hardware, we can quickly produce demo applications that exercise the hardware functionality.

Support for hardware production test or design proving

Software support for formal hardware testing and design proving, either self contained (Built In Test), or providing hooks for your Automated Test (e.g. Labview, Test Stand etc.)