Our experience allows us to be involved in every stage of the software
development process. From initial discussions to determine requirements
we can produce detailed requirement and technical specification.
Software design and coding is also carried out in-house, as is design
verification and testing. Where appropriate software can be supplied
as an installable package. Technical and user documentation can
be supplied for new or existing software.
As well as creating new software we can modify existing software
to add new functionality or support new hardware. This can often
be done where little, or no, documentation is available and reverse
engineering has to be employed. In such cases appropriate documentation
can be written.
We have experience of producing software for a wide variety of
platforms, from real-time firmware for embedded microprocessor PCBs
that have been designed in-house, to "state of the art" multi-processor
UNIX systems.
Most of our software is written in C, C++ or assembler. Software
written for Microsoft Windows is usually written using either Visual
C++ or Visual BASIC. Various flavours of UNIX scripts can be supplied,
including PERL.
Embedded Systems
We have developed software for many products incorporating embedded
microprocessors, using our own hardware designs and clients hardware
designs. Our expertise ranges from single PIC boards to state of
the art multi-processor systems. The range of microprocessors that
have been used include Intel 8086 to Pentium, Motorola 68000 series,
Hitachi H8/16 series, Intel 8051 series, Z80 families and various
PICs.
More complex projects may require a kernel or operating system
layer under the application code. We have worked with Wind River's
Tornado system to develop code for VxWorks. As embedded Linux becomes
more popular we are porting systems from VxWorks to Linux. We have
experience of embedded Linux on PowerPC and x86 platforms. In addition
we are familiar with other systems such as uCos and RTEMS. In contrast,
simpler projects can often be realised with the application code
directly controlling the hardware, saving the expense and complexity
of an operating system.
Our kernel / RTOS / device driver level code has included IEEE
1394 and USB device drivers. Application code has included complex
projects for navigation and communications products. All aspects
of such developments are covered in-house, including specification,
design, user interface, testing, system management, documentation
and utilities such as FLASH programming tools. We place particular
emphasis on ensuring that the balance of size versus performance
is optimised for each project, and are accustomed to working with
tight memory constraints.
We can also advise on, and arrange, manufacturing of embedded system.
Our experience covers consumer, automotive and aeronautical designs.
Unix and Linux
We have supplied applications for UNIX systems ranging from SCO
Xenix to DEC Alpha. All types of application can be produced such
as device drivers, simple filters, system administration utilities,
multi-user software, application porting and scripts. We have written
applications distributed over multiple platforms at remote locations,
connected to a central server via the Internet.
User interfaces can be designed for traditional terminals, X Windows
or web browsers using CGI.
Software can be supplied as a set of installation disks, installed
directly onto a client's systems or pre-installed on a custom system
built to a client's specification.
Windows 9X/2000
Most of the applications that we have developed have been designed
as user interfaces to embedded systems. Typical applications are
"in vehicle display" systems for on-board navigation systems using
mapping technology to display a vehicle's position in real-time.
We are experienced at debugging third party applications to allow
the developers to enhance reliability.
IBM PC BIOS
We have produced a customised BIOS and operating system for a PDA.
Top of Page
|