Home

Embedded Software Optimisation

As your application develops you could find yourself asking the question,

'Where did all the MIPS go?'

One of our goals here at Rock Software is to address the 'Black Box Syndrome' and performance issues that relate to embedded and other systems and get your MIPS back to where you need them, at the application level.

Black Box Syndrome

In recent years the role of low level software has been pushed further into the realms of the 'black box'. Companies developing products either don't have the in-house knowledge or the personnel to deal with software at this level.

This has been proliferated on the whole by large 'chip-set' manufacturing companies producing generic low level code for their devices in an attempt to sell a package deal rather than concentrating on device sales.

It is now commonplace to expect a company who sells a chip-set to provide device drivers and startup code for the device that will interface all the facilities within the chip to your own or third party operating system.

Whereas this may be a good approach in the sense that the application developers can begin work as soon as the development kit reaches the desk, it is often overlooked, until it becomes glaringly obvious, that the software provided with the development kit is generic and not necessarily optimised for the task at hand. This is not to say that this code is bad in any way but that the chip manufacturers have many customers using many different operating systems so such code tends toward generalisation usually at the expense of optimisation.

It is also often the case that a hardware design engineer is responsible for CPU selection, and without a low level software engineer to consult with about device drivers and operating system performance, this selection may be largely based on raw MIPS calculations and benchmarks provided by the manufacturer and these engineers may rarely have time to spare to investigate software performance issues.

What can we offer ?

We can't guarantee that we can make your system run faster but if you have a large amount of code in your project that you didn't write and that was not written specifically for your project, then you might be suffering from code generalisation problems, or be about to.

For an initial evaluation fee we can take your code and hardware and examine if there is a problem and propose the best way for it to be solved if one exists. This fee is generally based on the complexity of the system and the amount of code involved.

Their are many areas that we can examine including:

  • Efficiency of application code
  • Bottle neck identification
  • Device driver suitability
  • System architecture
  • CPU and peripheral access efficiency

After an initial evaluation and if a software solution exists we can propose the best way to address the situation and undertake the solution as necessary on a contract basis that fits your budget and time scale.

Solutions may include :

  • Removal of unnecessary coding
  • Re-coding or optimisation of device drivers
  • Application interface optimisation
  • Hand coding of critical sections
  • Application programmer re-training

Development Platforms

Owing to the diversity and expensive nature of development equipment it may be necessary for clients to supply a development board and debug equipment for the initial evaluation period. Depending on the nature of any suspected problems and the cost of extra debug equipment it is possible to carry out initial evaluations at the client's premises. This only applies to sites on the UK mainland except in unusual situations where equipment cannot be moved easily.

Any hardware need not necessarily be the final revision but simply a platform on which to evaluate the performance of the system. Usually after an initial evaluation it will not be necessary to retain this hardware while any code changes are implemented although it would be beneficial and will shorten final testing timescales. Also it may be necessary to supply any compilers, code generators, linkers or software build systems.

Every attempt will be made to reduce any changes in functionality to code wherever possible. However, when the best course of action is to change the way something works clients will be consulted and kept informed every step of the way and given the relevant information so they can decide if a change is economically viable.

What else ?

We also undertake general optimisation and development work at all levels in the following areas:

  • Software build environments
  • Java / JSP server side applications
  • HTML and client side scripting
  • Visual C++ / MFC / OCX applications and components

Why Choose 'Rock Software' ?

We have been involved with low level embedded software engineering for over 12 years and have experienced the problems described on this page many times and in many diverse situations first hand. It has often been left to others to address these problems because once they begin to come to light it is usually too late for the hardware design team to make any changes to the architecture and the applications engineers are usually too busy.

Remember that the device driver and operating system usually constitute the 10 percent of code that executes 90 percent of the time. If you improve the efficiency of this code by just a small amount it is possible to gain greater performance out of your product and allow more powerful applications to be developed, which is usually what sells the product.

Naturally we are happy to agree to any non-disclosure agreements for any product or source code that is released to us and all work is performed in the strictest confidence on secure equipment. If security is an issue, source code and equipment delivery can be done in person rather than by using electronic methods.

Contracts of any length and size are considered and rates are dependant on the complexity of the work, length of contract and whether the work is carried out on our own premises or the client's. Clients must be within the UK mainland for on-site contract work.

If you would like an initial quote for a preliminary code examination or more details on what we can offer, you can contact us right away using one of the methods described on the contact page or by mailing us at info@rock-software.com.




Copyright © 2010 by Rock Software.
All rights reserved.