Programming Embedded Systems in C and C++ – Michael Barr – 1st Edition


Embedded is in almost every electronic device designed today. There is hidden away inside our watches, microwaves, VCRs, cellular telephones, and pagers; the military uses embedded 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 , and there are thousands of computer , electrical , 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 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 chips quickly and efficiently
and erasing Flash memory
– Verifying nonvolatile memory contents with CRCs
– Interfacing to on-chip and external peripherals
– Device driver 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.

Table of Contents

Chapter 1. Introduction
1.1 What Is an Embedded System?
1.2 Variations on the Theme13
1.3 C: The Least Common Denominator
1.4 A Few Words About Hardware

Chapter 2. Your First Embedded Program
2.1 Hello, World!
2.2 Das Blinkenlights
2.3 The Role of the Infinite Loop

Chapter 3. Compiling, Linking, and Locating
3.1 The Build Process
3.2 Compiling
3.3 Linking
3.4 Locating
3.5 Building das Blinkenlights

Chapter 4. Downloading and Debugging
4.1 When in ROM
4.2 Remote Debuggers
4.3 Emulators
4.4 Simulators and Other Tools

Chapter 5. Getting to Know the Hardware
5.1 Understand the Big Picture
5.2 Examine the Landscape
5.3 Learn How to Communicate
5.4 Get to Know the Processor
5.5 Study the External Peripherals
5.6 Initialize the Hardware

Chapter 6. Memory
6.1 Types of Memory
6.2 Memory Testing
6.3 Validating Memory Contents
6.4 Working with Flash Memory
1 Comment
Inline Feedbacks
View all comments
Would love your thoughts, please comment.x