In the SSL/CW skills list, embedded systems is number 13
What is it?
An embedded system is a device combining hardware and software
which performs a dedicated function or functions. Found in consumer
electronics, process control systems, aircraft, in-car systems and
many other applications, they need to be extremely reliable, but
because of their small size and limited resources, present
challenges for designers and developers. Microsoft calls them
"non-personal computer devices". Usually they cannot be modified by
users, but often have interfaces to external devices such as
sensors.
Where did they originate?
Although they evolved from familiar microprocessor technology, the
development of embedded systems has followed a different path,
because of constraints on their price and use of resources. Many
are used in mass-produced products where a difference of pennies in
unit production costs can affect commercial success. Designers work
within limits that PC developers have not experienced since the
late 1970s. One of the most successful ranges is the Zilog Z80, an
eight-bit microprocessor.
What are they for?
Embedded systems have kept pace with developments in other fields
of computing. We now have the "embedded internet" - last year,
Zilog released the eZ80, which incorporates a TCP/IP stack.
What makes them special?
The unstoppable rise of computer electronics, automation and
control systems means a vast market for scarce and hard-to-acquire
embedded systems skills. Yet in many ways, embedded systems are
something of a cottage industry, with thousands of specialist
development companies, and opportunities for talented individuals.
How difficult is it to master?
According to veteran embedded systems guru Jack Ganssle, C or C++
are base-level skills for any firmware (program code held on memory
chips without electrical power) developer, but are merely a subset
of the required expertise.
He said, "First is the ability to work with limited resources. When
the system is performance-bound, embedded engineers redesign code,
tune routines and even, at times, change the hardware design. So
the accomplished firmware developer is a master of cramming more
into less: more features into less memory, more performance into
fewer CPU cycles. Assembly language always lurks. We firmware folk
are responsible for even the most basic of all functions."
It is also helpful to be able to use hardware description languages
such as VHDL and Verilog.
What systems does it run on?
Some use dedicated operating systems, others versions of Unix or
Windows. Microsoft provides Windows XP Embedded, Windows CE .net
and Windows CE for Automotive, which may offer a way in, since
developers can use familiar tools such as Visual Studio.net. Also
check out Embedded Linux and Java.
Where is it used?
The alarm clock that woke you, the microwave, toaster and
coffee-maker you used for breakfast may all contain one. If you
drove to work, you probably relied for security, safety and comfort
on several dozen.
Not many people know that
Eighty per cent of embedded systems are delivered late, according
to Jack Ganssle.
What is coming up?
Embedded Internet systems for consumer electronics, enabling you to
control domestic devices remotely.
Training
Embedded systems design can be as close to electronic engineering
as software development gets, so an academic rather than commercial
course may be the best foundation. C programmers can take five-day
crash courses in embedded C.
www.embeddedsystemstraining.co.ukwww.ganssle.com.
Rates of pay
Experienced embedded software engineers can expect £35,000 to
£40,000.