Embedded Programming

Call: +44 (0)23 8098 8890
E-mail:

ITDev is expert at developing embedded software and firmware for a range of operating systems, microprocessors and microcontrollers.

We are frequently contracted to implement complex algorithms on embedded targets with strict criteria for performance and timing.

Limited System Resources

Embedded systems are often characterised by limited memory and CPU performance, and may have a requirement for low power consumption. We use various techniques to develop high quality code efficiently in these situations, including:

  • Identifying and removing bottlenecks with performance analysis and tracing tools.
  • Using low-level languages such as C or assembler for greater control over resource usage.
  • Developing unit tests to quickly verify software modules on higher performance machines.
  • Tuning code for low memory usage and looking for memory leaks using tools such as Valgrind.
  • Preventing memory leakage by using static allocation if necessary (for example in a safety critical application).

Time-Critical Systems

We use timing diagrams and state-transition diagrams to document the timing requirements for applications where precise timing is essential. We can recommend an operating system or microkernel for the project based on this analysis. For real-time applications this might be a Real-Time Operating System (RTOS). We can architect the system, and develop the software code and the related test harnesses to achieve the required timings and performance.

Typical Platforms

  • ARM, MIPS, Motorola, ST, TI, Microchip...
  • Arduino
  • Xilinx MicroBlaze (Softcore Processor)
  • Xilinx and Altera FPGA (see Electronics Overview)

Typical Operating Systems

  • Embedded Linux
  • Android
  • FreeRTOS
  • μC/OS

Latest Blog Posts

Posted 12th July 2019, By Steven S
Expanding on a previous blog post we now expand on building a kernel for a different architecture, cross-compiling.
Posted 4th March 2019, By Lucas N
Our first CI deployments brought many benefits but we felt that there was still a lot of room for improvement. This blog explores how we addressed these ...more
Image for Time Server blog
Posted 11th January 2019, By James H
Making a Stratum 1 Linux Time Server: Part 3 We have found out in the previous two parts of this series why distributed devices might need a method to ...more
Posted 14th December 2018, By James H
In the previous article we saw that getting distributed devices to agree on the current time is hard. This article, the second in a series of three, will ...more

Latest News

Posted 28th June 2019
We've got several 'Reasons to be cheerful' (thank you 'Ian Drury and the Blockheads') here at ITDev. Firstly, we're celebrating two staff milestone ...more
CI Workshop photo collage
Posted 26th March 2019
On 7th March, ITDev brought together peers and associates from over 20 companies to discuss Continuous Integration (CI). As part of the event, we were ...more
ITDev at University of Southampton Careers Fair 2019
Posted 26th February 2019
With available graduate and internship places for this year, ITDev attended the University of Southampton's Engineering and Technology Careers Fair.
Posted 15th February 2019
Following our company tradition, we recently donated the proceeds from our staff-run tuck shop to our nominated charity, Winchester Churches Nightshelter.