Software and Application Development
Application development involves mostly software work, sometimes with a limited amount of hardware interfacing. The application generally makes use of the underlying OS for hardware support.
Bluewater Systems undertakes mostly embedded application development for ARM embedded systems (i.e. those with an ARM Microcontroller on the board). Many of these have an LCD screen and a GUI, which somewhat blurs the distinction between desktop and embedded systems. We have also produced a number of GUI applications for Operating Systems such as Windows and Linux, mostly using the 'QT' GUI toolkit.
Running application software is the ultimate purpose of an embedded system. Yet many embedded applications are very simple. Much of the work involved in bringing up an embedded system is in the Operating Systems and drivers for the ARM Microcontroller being used.
- Embedded applications can be devised for many different purposes. Some examples include:
- Logging data from a device to a storage mechanism, or over a network. Examples include weather telemetry stations.
- Controlling another device or system using a built-in program, perhaps with user input. Examples include a sprinkler controller for hydroponic plants.
- Providing a fixed-purpose device for use by another computer system. Examples include hard disk drives.
- A user communications device such as a DECT or GSM phone, most of which these days have an ARM Microcontroller on-board.
- Augmenting a user's ability to improve response time or safety. Examples include ABS brakes in cars. In each case, the application software provides the top layer of functionality, using the Operating System and drivers below.