What is it?
An
embedded system
is a special-purpose computer system designed to perform a
dedicated function. Embedded systems perform a small number of
predefined tasks, and as such engineers are able to optimise their
design, resulting in lower costs.
In February, microprocessor manufacturer
Zilog, one of the leaders in
the manufacture of processors for embedded systems, announced a new
version of its 8-bit Z80 chip. Older readers may recall the Z80 as
the processor that drove their first home and hobbyist systems,
such as the
Sinclair Spectrum, Tandy TRS-80 and early Nintendo Gameboy.
The eZ80F91 is a very different beast, designed for internet
networking and communications applications, and featuring
"increased registers for better I/O performance, a modified power
controller for lower power consumption, and updated flash memory
functionality to reduce code size and speed time to market".
It is not just the names of the processors that recall the days
when constrained processor power and memory required greater
discipline. Competitive edge in this globalised mass-market can
come down to a mere penny in production costs, or shaving off a few
CPU cycles.
Creating the software for embedded systems has been described as
"the art of doing more with less". It is an unforgiving market,
where the daily crashes we are used to on PCs will not be tolerated
- patients in intensive care units don't have the option of
wandering off for a coffee while nurses reboot the systems that are
keeping them alive. Equally, manufacturers of socks that play
Jingle Bells cannot afford a week's slippage in delivery for their
once-a-year market.
Where did it originate?
Military, aerospace, medical and traffic control applications
have used embedded systems since the 1940s, but the mass market
took off in the 1980s when new production techniques reduced the
unit cost of chips to less than a dollar.
What makes it special?
Embedded systems programming combines the intellectual challenge
of problem solving within extreme constraints with some of the
highest financial rewards available to C and C++ developers.
How difficult is it to master?
The best route into embedded systems is through C or C++.
Embedded C is an ISO-specified set of extensions to the C language,
which attempts to address the common features of different
processors to improve performance, and also to enable applications
to be portable.
C developers will have to learn the embedded extensions, and C++
specialists will have to unlearn many of the approaches they are
used to. There are a growing number of integrated development
environment tools to make life easier, including Embedded Visual
C++ and the output of the Eclipse Embedded Rich Client Platform
Subproject.
Where is it used?
Applications include mobile phones, aircraft and in-car control
systems, medical equipment, household electronics and computer
peripherals. The two top prize winners in Zilog's 2006 16-bit
embedded design competition were an automated window-blind
controller and an internet-ready refrigerator.
What systems does it run on?
Versions of familiar and not-so-familiar operating systems
including
Embedded Linux,
OpenBSD,
SymbianOS,
Windows CE
and
Windows XP
Embedded.
Rates of pay
Salaries for embedded C and C++ developers start at £30,000,
rising to £45,000-plus with two or more years' experience.
Training
Most firms that offer C training also have embedded C courses.
There are many books, such as Programming Embedded Systems in C and
C++ by Michael Barr and Anthony Massa.Microsoft developers should
start at
Microsoft's embedded systems page >>
Computer Weekly/SSL
salary survey >>
Hotskills >>