A client had a very cost sensitive product which used as small
microcontroller with code written in assembler. It basically worked but
was difficult to support and had bugs. They were keen to port it to C
but concerned that this would causet a large increase in code size and
slow the code down. With our knowledge of assembler, the C
compiler and
the processor architecture, we were able to assure them that the code
size
increase would be no more than 10% and that timing would not be an
issue.
We completed the porting of the code in two weeks. Code
size and timing
targets were met without problems. The bugs were eliminated too! The
handover to the client included a full code walk-through,
details of critical timing-sensitive parts of the code and compiler /
linker settings so that the client's engineers were confident they
could support the code.
We can provide embedded C and assembler coding especially for code which requires knowledge of the underlying hardware and the compiler / linker. An obvious example of this is writing device drivers but includes code optimisation, memory-use optimisation and minimising device power consumption.
We have written Linux device drivers, drivers for complex ASICs and FPGAs, filters for DSPs and complete board support packages (BSPs). We also write straightforward well documented C code. We have extensive experience in writing for safety critical applications to rigourous coding standards.