Home > Store > Programming

larger cover

Add To My Wish List

Embedded Software Primer, An

Register your product to gain access to bonus material or receive a coupon.

  • Description
  • Reviews
  • Sample Content

Product Author Bios

David E. Simon is a partner in Probitas Corporation, a software development consulting firm. Much of his work at Probitas is in embedded systems for firms such as Apple, Adobe, Hewlett-Packard, and Symbol Technologies. David has 20 years of experience in software development, and is the author of three previous books. He regularly teaches a class on embedded systems for the University of California at Berkeley Extension Program.



020161569XAB04062001

 

"I sincerely wish (this book) had been available when I had to learn all this stuff the hard way."
--Steve Vinoski
"An excellent job of introducing and defining the jargon associated with embedded systems. This makes the text extremely easy to read."
--David Cuka

An Embedded Software Primer is a clearly written, insightful manual for engineers interested in writing embedded-system software. The example-driven approach puts you on a fast track to understanding embedded-system programming and applying what you learn to your projects. This book will give you the necessary foundation to work confidently in this field.

Building on a basic knowledge of computer programming concepts, this book will help you to:

  • Learn core principles and advanced techniques of embedded-system software.
  • Find out what a real-time operating system (RTOS) does and how to use one effectively.
  • Experiment with sample code and the µC/OS RTOS version 1.11 (on the accompanying CD).
  • Apply what you learn, no matter which microprocessor or RTOS you use.

After reading this book, you will be able to tackle the challenges of embedded system programming and quickly reap the benefits of your new skills.

Customer Reviews

30 of 32 people found the following review helpful
5.0 out of 5 stars Great for beginners and undergraduate level students, July 25, 2002
By 
This review is from: An Embedded Software Primer (Paperback)
I started working on an embedded platform 1 year ago. Although now I have a good understanding of a lot of the aspects of the system, I never get the big picture.

This book provides exactly what I needed.

If you are a working software engineer and have spent years doing high level programming, the first few chapters will give you a good review of low-level-close-to-the-machine things that you need to know, which is also very useful for students as these are very important concepts that they need to understand to have a solid foundation to conquer higher level, more abstract CS subjects.

In embedded system, bugs in task code can bring down the device. Author has done a very good job explaining how to protect shared data using mechanism provided by a RTOS. The communication between interrupt/task and among tasks are also discussed thoroughly.

Unlike the other reviewer, I found the use of the C!! language in this book a very clever way to abstract away the hardware dependent... Read more

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


19 of 19 people found the following review helpful
5.0 out of 5 stars What I Learned The Hard Way, March 24, 2000
By A Customer
This review is from: An Embedded Software Primer (Paperback)
This is a great book for begineers. The author touches upon just about all aspects of software development for embedded systems. This information is usually learned the hard way - on the job. This book will give begineers a head start with the numerous examples of how to do things. And how NOT to do things. I have made it required reading for my software engineers - new and experienced.

In addition, the book is easy reading. The author keeps things somewhat brief and to the point.

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


26 of 28 people found the following review helpful
5.0 out of 5 stars Excellent book, excellent content, very well written!, June 13, 2000
By 
Rob Wehrli (Melbourne) - See all my reviews
(REAL NAME)   
This review is from: An Embedded Software Primer (Paperback)
I shouldn't need to say more; If you're interested in learning about writing software for embedded systems, this book will take you by the hand and get you there without a lot of fuss or difficulty in trying to figure out advanced topics from a 50,000ft perspective. It drills into each discussion using simplified but not simpleton characteristics of this writer's excellent skill. I recommend this book to every software engineer starting on the path to developing embedded systems. The use of uCOS-II is a decent idea, especially for everyone interested in doing a little embedded systems development using PC hardware...however, I believe that it is a less-than perfect choice because of the rather limited compiler choices for uCOS-II, which should at least include GNU's gcc, but doesn't last time I checked.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


Share your thoughts with other customers:
 See all 31 customer reviews...

Table of Contents



Preface.


Acknowledgments.


About This Book and the Accompanying CD-ROM.


1. A First Look at Embedded Systems.

Examples of Embedded Systems.

Typical Hardware.

Chapter Summary.



2. Hardware Fundamentals for the Software Engineer.

Terminology.

Gates.

A Few Other Basic Considerations.

Timing Diagrams.

Memory.

Chapter Summary.

Problems.



3. Advanced Hardware Fundamentals.

Microprocessors.

Buses.

Direct Memory Access.

Interrupts.

Other Common Parts.

Built-Ins on the Microprocessor.

Conventions Used on Schematics.

A Sample Schematic.

A Last Word about Hardware.

Chapter Summary.

Problems.



4. Interrupts.

Microprocessor Architecture.

Interrupt Basics.

The Shared-Data Problem.

Interrupt Latency.

Chapter Summary.

Problems.



5. Survey of Software Architectures.

Round-Robin.

Round-Robin with Interrupts.

Function-Queue-Scheduling Architecture.

Real-Time Operating System Architecture.

Selecting an Architecture.

Chapter Summary.

Problems.



6. Introduction to Real-Time Operating Systems.

Tasks and Task States.

Tasks and Data.

Semaphores and Shared Data.

Chapter Summary.

Problems.



7. More Operating System Services.

Message Queues, Mailboxes, and Pipes.

Timer Functions.

Events.

Memory Management.

Interrupt Routines in an RTOS Environment.

Chapter Summary.

Problems.



8. Basic Design Using a Real-Time Operating System.

Overview.

Principles.

An Example.

Encapsulating Semaphores and Queues.

Hard Real-Time Scheduling Considerations.

Saving Memory Space.

Saving Power.

Chapter Summary.

Problems.



9. Embedded Software Development Tools.

Host and Target Machines.

Linker/Locators for Embedded Software.

Getting Embedded Software into the Target System.

Chapter Summary.



10. Debugging Techniques.

Testing on Your Host Machine.

Instruction Set Simulators.

The assert Macro.

Using Laboratory Tools.

Chapter Summary.

Problems.



11. An Example System.

What the Program Does.

Environment in Which the Program Operates.

A Guide to the Source Code.

Source Code.

Summary.

Problems.



Afterword.


Further Reading.


Index. 020161569XT04062001

Preface

This book is to help you learn the basic principles of writing software for embedded systems. It surveys the issues and discusses the various techniques for dealing with them. In particular, it discusses approaches to the appropriate use of the real-time operating systems upon which much embedded software is based. In addition to explaining what these systems do, this book points out how you can use them most effectively.

You need know nothing about embedded-systems software and its problems to read this book; we'll discuss everything from the very beginning. You should be familiar with basic computer programming concepts: you might be a software engineer with a year or more of experience, or perhaps a student with a few programming courses under your belt. You should understand the problems involved in writing application programs. This book requires a reading knowledge of the C programming language; since C is the lingua franca of embedded systems, you will have to learn it sooner or later if you hope to get into the field. A little knowledge of assembly language will also be helpful.

You have no doubt seen many books about software that are 800 or 900 or even 1000 pages long. Presumably you have noticed by now that this book is much smaller than that. This is intentional--the idea is that you might actually want to read all the way through it. This book is not entitled Everything There Is to Know about Embedded Systems Software. Nobody could write that book, and if someone could and did, you wouldn't want to read it anyway. This book is more like What You Need to Know to Get Started in Embedded Systems Software, telling you enough that you'll understand the issues you will face and getting you started on finding the information about your particular system so that you can resolve those issues.

This book is not specific to any microprocessor or real-time operating system nor is it oriented towards any particular software design methodology. The principles are the same, regardless of which microprocessor and which realtime operating system and which software design methodology you use. We will concentrate on the principles--principles that you can apply to almost any embedded system project. When you need to know the specifics of your microprocessor and your real-time operating system, look in the voluminous manuals that hardware and software vendors provide with their products. This book will help you know what information to look for.

This book is not academic or theoretical; it offers engineering information and engineering advice. In short, this book is the cornerstone of the knowledge that you'll need for writing embedded-systems software.

David E. Simon

020161569XP04062001

 
Buy

Book  $59.99  $47.99

Usually ships in 24 hours.

This book includes free shipping!

Purchase Reward: One Month Free Subscription
By completing any purchase on InformIT, you become eligible for an unlimited access one-month subscription to Safari Books Online.

Get access to thousands of books and training videos about technology, professional development and digital media from more than 40 leading publishers, including Addison-Wesley, Prentice Hall, Cisco Press, IBM Press, O'Reilly Media, Wrox, Apress, and many more. If you continue your subscription after your 30-day trial, you can receive 30% off a monthly subscription to the Safari Library for up to 12 months. That's a total savings of $199.