Programming Embedded Systems in C and C++

Capa
"O'Reilly Media, Inc.", 1999 - 174 páginas

Embedded software is in almost every electronic device designed today. There is software hidden away inside our watches, microwaves, VCRs, cellular telephones, and pagers; the military uses embedded software to guide smart missiles and detect enemy aircraft; communications satellites, space probes, and modern medicine would be nearly impossible without it. Of course, someone has to write all that software, and there are thousands of computer scientists, electrical engineers, and other professionals who actually do.

Each embedded system is unique and highly customized to the application at hand. As a result, embedded systems programming is a widely varying field that can take years to master. However, if you have some programming experience and are familiar with C or C++, you're ready to learn how to write embedded software. The hands-on, no-nonsense style of this book will help you get started by offering practical advice from someone who's been in your shoes and wants to help you learn quickly.

The techniques and code examples presented here are directly applicable to real-world embedded software projects of all sorts. Even if you've done some embedded programming before, you'll still benefit from the topics in this book, which include:

  • Testing memory chips quickly and efficiently
  • Writing and erasing Flash memory
  • Verifying nonvolatile memory contents with CRCs
  • Interfacing to on-chip and external peripherals
  • Device driver design and implementation
  • Optimizing embedded software for size and speed

So whether you're writing your first embedded program, designing the latest generation of hand-held whatchamacalits, or simply managing the people who do, this book is for you.

 

Conteúdo

Introduction
1
Variations on the Theme
4
The Least Common Denominator
9
A Few Words About Hardware
11
Your First Embedded Program
13
Das Blinkenlights
14
The Role of the Infinite Loop
18
Compiling Linking and Locating
19
Validating Memory Contents
74
Working with Flash Memory
79
Peripherals
84
The Device Driver Philosophy
86
A Simple Timer Driver
89
Das Blinkenlights Revisited
97
Operating Systems
100
A Decent Embedded Operating System
101

Compiling
21
Linking
23
Locating
25
Building das Blinkenlights
27
Downloading and Debugging
30
Remote Debuggers
32
Emulators
35
Simulators and Other Tools
37
Getting to Know Processor
40
Examine the Landscape
42
Learn How to Communicate
47
Get to Know the Processor
50
Study the External Peripherals
53
Initialize the Hardware
54
Memory
57
Memory Testing
61
RealTime Characteristics
119
Selection Process
122
Putting It All Together
124
Flashing the LED
126
Printing Hello World
130
Working with Serial Ports
131
The Zilog 85230 Serial Controller
137
Optimizing Your Code
139
Decreasing Code Size
143
Reducing Memory Usage
144
Limiting the Impact of C++
146
Arcoms Target 188EB
149
Glossary
151
Bibliography
165
Index
169
Direitos autorais

Outras edições - Ver todos

Termos e frases comuns

Sobre o autor (1999)

Michael Barr has been an editor of Embedded Systems Programming since 1999 and a contributor since 1997; he is currently that magazine's editor-in-chief. His book about embedded software development -- Programming Embedded Systems in C and C++ (O'Reilly, 1999) -- has taught tens of thousands of engineers the subject and been translated into several languages. He is also the author of CMP Book's Embedded Systems Dictionary (2003). Michael is a lecturer at the University of Maryland and a popular Embedded Systems Conference instructor and advisor. Software he wrote helps run millions of systems around the world, ranging from satellite base stations to physical therapy equipment. Through the Netrino Consultants Network, Michael provides design advice and training. He holds MS and BS degrees in electrical engineering.

Informações bibliográficas