BUY THIS BOOK

Safari Books Online

What is this?

Programming Embedded Systems in C and C++

By Michael Barr
January 1999
Pages: 194
ISBN 10: 1-56592-354-5 | ISBN 13: 9781565923546
starstarstarstarstar (Average of 5 Customer Reviews)

This book has been updated—the edition you're requesting is OUT OF PRINT. Please visit the catalog page of the latest edition.

The latest edition is also available on Safari Books Online.

Book description

This book introduces embedded systems to C and C++ programmers. Topics include testing memory devices, writing and erasing Flash memory, verifying nonvolatile memory contents, controlling on-chip peripherals, device driver design and implementation, optimizing embedded code for size and speed, and making the most of C++ without a performance penalty.
Full Description

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.

Browse within this book

Cover | Table of Contents | Index | Colophon




Featured customer reviews

Write a Review


Programming Embedded Systems in C and C++ Review,  September 04 2003
Rating: StarStarStarStarStar
Submitted by Sohail   [Respond | View]

Book is not for starters.
I got the book and the kit but i it requires Borland compiler and i wanted to use gcc. Tried every thing but on use. if you want to use borland then it is up to you. but i will say, book doesnt explain the things as it should, or atleast what i have expected.


Programming Embedded Systems in C and C++ Review,  July 17 2001
Rating: StarStarStarStarStar
Submitted by James Ftizsimons   [Respond | View]



As a complete beginner to embbeded development I learned a huge amount from this book. I highly recommend it too other people looking to start in embbeded development. A strong understanding of C and C++ will definately help.




Programming Embedded Systems in C and C++ Review,  February 04 2001
Rating: StarStarStarStarStar
Submitted by philc   [Respond | View]



I think this is a good book, it includes info on many regions of embedded development, I would also like to suggest people to visit www.jungo.com for usefull toolkit for embedded systems.

Read all reviews


Programming Embedded Systems in C and C++ Review,  October 19 2000
Rating: StarStarStarStarStar
Submitted by Andy Douglas   [Respond | View]

The book is well written, and it introduces embedded systems programming at a novice level. I learned a great deal from the book and the example

code. Here are the negative comments, but good things can result from bad so please read the entire review. He states in the book that he has done

most of his programming in C. This fact can be seen in the architecture of his C++. For instance, he uses globally constructed classes in different

compilation units. This is a no-no according to the author of the language. In addition, the example code was not tested on new versions of the

Borland compiler, although he eludes that latter versions should work. They do not. For the good however, in pouring through the code and the book,

with different compilers, etc., I learned a great deal about the inner workings of a small RTOS and various related issues. I do recommend this book,

but allow yourself plenty of time with the source code.


Programming Embedded Systems in C and C++ Review,  July 10 2000
Rating: StarStarStarStarStar
Submitted by vijay rajan   [Respond | View]

The ADEOS code downloaded from the oreilly ftp server has bugs.
The TaskList code makes mistakes in maintaining the list correctly.




Programming Embedded Systems in C and C++ Review,  November 07 1999
Submitted by Soummya Malllick   [Respond | View]



PS: Where is the "downloadable software" for Adeos


Programming Embedded Systems in C and C++ Review,  July 14 1999
Submitted by Jim Vergilio   [Respond | View]



WARNING to Beginners

As of 7-14-99, the ARCOM Target188 board used in this book requires unsupported and unavailable Borland compilers and debuggers. Before attempting to follow this route to learn embedded system programming, contact both ARCOM and Borland as to the availability of needed software tools.



Programming Embedded Systems in C and C++ Review,  September 13 1998
Submitted by John Jelen   [Respond | View]



I had a few problems trying to rebuild the hello.exe file using the files supplied from the website.
The .cpp files for in the \examples directory
will compile differently (in terms of *.obj file size)
using Borland 4.52 versus Borland 3.1. In addition
I got link errors in \bc45\bin\cl.lib in the
form of undifined symbols for _terminate,_checknull,
_restorezero, and _cleanup. These problems went
away when I switched to Borland 3.1. I think these
were caused by the linking of the startup.obj file
in \examples\chapter3.
Also the module.mk in \chapter9 may have to be tweeked to explictly point to the location of the math.lib library.


Media reviews "With the list of electronics growing every day, so does the need for programmers who can write software for embedded systems. This book was written for two types of readers, beginning programmers interested in writing embedded software, and embedded systems programmers looking for a reference that explains key topicsaclear, concise steps and usable code examples, includes coding tips and warnings." --fatbain.com editorial review

"The programming of embedded processors is an increasingly important skill. This easy-to-read book starts at the beginning (assuming only a knowledge of C and C++) and leads the reader through the essentials of embedded systems programming, concentrating an areas common to all projects." --I&CS, Sept 1999

This lively and readable book is the perfect introduction for those venturing into embedded systems software development for the first time. It provides in one place all the important topics necessary to orient programmers to the embedded development process. --Lindsey Vereen, Editor-in-Chief, Embedded Systems Programming Journal

Read all reviews

See larger cover