Embedded Systems Architecture
To the engineer and man I respect and admire the most,
my father,
Dr Al M. Zied
Embedded Systems Architecture
A Comprehensive Guide for Engineers and Programmers
Tammy Noergaard
AMSTERDAM • BOSTON • HEIDELBERG • LONDON • NEWYORK • OXFORD • PARIS
SAN DIEGO • SAN FRANCISCO • SINGAPORE • SYDNEY • TOKYO
Newnes is an imprint of Elsevier
The material in this book is excerpted from Placing the Suspect Behind the
Keyboard: Using Digital Forensics and Investigative Techniques to
Identify Cybercrime Suspects.
For more First Look titles and Syngress offers, go to store.elsevier.com/SyngressFirstLook.
Newnes is an imprint of Elsevier
The Boulevard, Langford Lane, Kidlington, Oxford, OX5 1GB
225 Wyman Street, Waltham, MA 02451, USA
First edition 2005
Second edition 2013
Copyright © 2013, 2005 Elsevier Inc. All rights reserved
No part of this publication may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording, or any information storage and
retrieval system, without permission in writing from the publisher. Details on how to seek permission, further
information about the Publisher’s permissions policies and our arrangement with organizations such as the
Copyright Clearance Center and the Copyright Licensing Agency, can be found at our website: www.elsevier.com/
permissions
This book and the individual contributions contained in it are protected under copyright by the Publisher (other
than as may be noted herein).
Notices
Knowledge and best practice in this field are constantly changing. As new research and experience broaden our
understanding, changes in research methods, professional practices, or medical treatment may become necessary.
Practitioners and researchers must always rely on their own experience and knowledge in
evaluating and using any information, methods, compounds, or experiments described herein.
In using such information or methods they should be mindful of their own safety and the safety
of others, including parties for whom they have a professional responsibility.
To the fullest extent of the law, neither the Publisher nor the authors, contributors, or editors, assume any liability
for any injury and/or damage to persons or property as a matter of products liability, negligence or otherwise, or
from any use or operation of any methods, products, instructions, or ideas contained in the material herein.
British Library Cataloguing-in-Publication Data
A catalogue record for this book is available from the British Library
Library of Congress Cataloguing-in-Publication Data
A catalog record for this book is available from the Library of Congress
ISBN: 978-0-12-382196-6
For information on all Newnes publications
visit our website at store.elsevier.com
Typeset by MPS Limited, Chennai, India
www.adi-mps.com
Printed and bound in the United States
13 14 15 16 10 9 8 7 6 5 4 3 2 1
Foreword to the First Edition
When Tammy Noergaard first told me she wanted to write a soup-to-nuts book about
building embedded systems I tried to dissuade her. This field is so vast, requiring insight into
electronics, logic circuits, computer design, software engineering, C, assembly, and far more.
But as we talked she showed me how the industry’s literature lacks a definitive work on the
subject. I warned her of the immensity of the project.
A year and many discussions later Fedex arrived with the review copy of this book. At
approximately 700 pages it’s appropriately twice the size of almost any other opus on
the subject. The book you’re holding truly is “A Comprehensive Guide for Engineers and
Programmers.” Sure, the minutiae of programming a PIC’s timer might have been left out, but
the scope is vast and important.
Tammy starts with the first principles of electronics and advances through software to the
expensive end-phase of maintenance. She treats hardware and software as an integrated
whole, which sort of defines the nature of embedded systems. Ironically, though, developers
are increasingly specialized. More than a few software folks haven’t a clue about transistors
while too many EEs can’t accurately define middleware. I fear readers may skip those
chapters that don’t immediately pertain to the project at hand.
Resist any such temptation, gentle reader! Become a true master, an embedded sage, by
broadening your horizons to cover all aspects of this fascinating field. We engineers are
professionals; you and I know this in our hearts. Yet true professionals are those who learn
new things, who apply newly evolving technologies to solve problems. Consider doctors:
the discovery and production of penicillin in the 1940s changed the profession of medicine
forever. Any doc who ignored this new technology, who continued to practice using only the
skills learned in college, was suddenly rendered a butcher. Software and hardware developers
are faced with the same situation. C wasn’t taught when I went to school. The FPGA hadn’t
been invented. GOTOs were still just fine, thank you. We learned to program microprocessors
in machine code using primitive toolchains. Today—well, we know how much has changed.
The rate of change is increasing; change’s first derivative is an ever-escalating positive
number. Professional developers will read this book from cover to cover, and will constantly
seek out other sources of information. If you’re not at least surfing through a half dozen
xi
xii Foreword to the First Edition
technical magazines a month and reading a handful of books like this per year, then it won’t
take a Cretaceous asteroid to make you a dinosaur.
Some of this book might surprise you. Ten pages about reading datasheets? Fact is, datasheets
are dense formal compilations of contractual material. The vendor promises the part will
do “X” as long as we use it in an agreed-on manner. Violate any of perhaps thousands
of specifications and the part will either not work or will be unreliable. With some parts
dissipating 100 watts or more, even such arcana as thermal characteristics are as important as
the device’s instruction set.
Tammy’s generous use of examples elucidates the more obscure points. Engineering—
whether hardware or software—is the art of building things and solving problems. The
academics can work with dry theory; we practicing developers often learn best by seeing
how something works. So the chapter on device drivers does explain the intricacies of
building these often-complex bits of code, but couples the explanation to a wealth of
real-world examples.
Finally, Tammy’s words about the Architecture Business Cycle of embedded systems resonate
strongly with me. We don’t build these things just to have a good time (though we sure hope
to have one along the way), but to solve important business problems. Every decision we
make has business implications. Use too little horsepower and development costs skyrocket—
sometimes to the point of making the project unviable. A poor analysis of the problem
that leads you to toss in an excess of Flash might drive costs unacceptably high. Select a
component (hardware or software) from a failing company and your outfit may share in the
vendor’s demise.
Enjoy this book, and futureproof your career at the same time.
Jack Ganssle