Io Electronics
Electronic Systems Design and Manufacture
Embedded Software Design

Most of the equipment we supply (and therefore most of the work which we do) involves the choice of at least one microcontroller.


This if course means that we need to supply operational software which runs on the target system. Some years ago (perhaps 10 or more) this would likely have  involved assembly code, targeted to run on an 8-bit architecture.


Over time, technology and economics have allowed us all to progress from 8-bit architectures through 16-bit and rather rapidly on to 32-bit architectures as the embedded microcontrollers of choice for general-purpose work.


The huge resource available in a typical modern embedded processor means that the slight inefficiencies of high level language compilers can be accommodated, rendering assembly source code obsolescent for most general-purpose implementations.


We mostly use the C programming language for coding, and have done for a number of years. Increasingly we find that the addition of a task scheduler (sometimes known as an RTOS) adds to the flexibility needed when changes are needed as a design evolves throughout the product lifetime.