| |
|
|
Embedded Operating Systems
Many embedded systems will include an operating system. There are many
factors that go into the decision on whether to use an operating system
or not. Key reasons for using an operating system include:
- the implementation requires multiple processes, tasks or threads
- access to hardened protocol stacks such as TCP/IP
- access to drivers for standard devices
- access to software components that require an underlying operating
system
- support for advanced hardware features such as an MMU
Implementations including an operating system will require more system
memory than those that do not. Where the amount of memory available is
severely restricted, operating systems with smaller footprints are available.
There may be support or licensing costs associated with an operating system.
Although we have expertise with a number of operating systems, embedded
Linux remains our favourite choice.
Embedded Linux
There are numerous economic and technical benefits in using Linux for
embedded devices. Some of the key reasons cited for the dramatic increase
in the adoption of Linux include:
- Linux is high-performance, stable and mature,
- Linux is royalty free,
- Linux support is available for a wide range of processor architectures,
- Open and non-proprietary Linux development tools are available,
- Large body of open source code is available (drivers, stacks, utilities,
... ) and
- Growing number of developers who have experience with Linux and open
source software.
Some of Our Linux Projects
pSOS to Real-Time Linux Conversion
Our work on this project involved the migration of an existing
VMEbus control system from obsolete hardware and pSOS to modern
hardware and real-time Linux configured for hard real-time. Our
deliverables included:
- Hardware selection (bus standard, processor board, analog I/O,
digital I/O, chassis)
- Recommendations for the system software: development environment,
real-time operating system and tools
- Redesign of the task-based, flat address space used by pSOS
to Linux processes in user space and kernel space
- Device driver development for analogue and digital I/O hardware
- Development of a software upgrade strategy
- Coding, integration and final commissioning
- Development of a web interface to the control system
- Documentation and support
The control system represents a system with hard real-time constraints.
The investigation into the suitability of Linux for the project
included measuring interrupt and context-switch latencies for various
possible Linux kernels and sub-kernels. The options considered include
using standard Linux distributions (2.4.27 and 2.6.8) as well as
using RTAI and LXRT with the Linux 2.4 kernel. The technique used
to measure latency and the results are documented in the whitepaper
available on our website. |
Tool Chain Upgrade
This project involved the upgrade and verification of a tool chain
for the PowerPC 405. Our deliverables included:
- Selection of component versions for: uClibc, BusyBox and binutils
- Integration with the client's kernel headers and kernel source
- Demonstration of shared library support for BusyBox
- Execution of the DejaGnu test suite on the remote target with
the updated tool chain based on uClibc. This work required the
integration of ssh and scp to support the remote testing
- Investigation into unexpected test case failures
- Propagation of client-specific BusyBox modifications to the
updated version
- Documentation and support
|
|
|
 |
|