Synopses & Reviews
"I sincerely wish (this book) had been available when I had to learn all this stuff the hard way."
"An excellent job of introducing and defining the jargon associated with embedded systems. This makes the text extremely easy to read."
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.
"An excellent job of introducing and defining the jargon associated with embedded systems. This makes the text extremely easy to read." David Cuka
I sincerely wish (this book) had been available when I had to learn all this stuff the hard way." Steve Vinoski
About the Author
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.
Table of Contents
About This Book and the Accompanying CD-ROM.
1. A First Look at Embedded Systems.
Examples of Embedded Systems.
2. Hardware Fundamentals for the Software Engineer.
A Few Other Basic Considerations.
3. Advanced Hardware Fundamentals.
Direct Memory Access.
Other Common Parts.
Built-Ins on the Microprocessor.
Conventions Used on Schematics.
A Sample Schematic.
A Last Word about Hardware.
The Shared-Data Problem.
5. Survey of Software Architectures.
Round-Robin with Interrupts.
Real-Time Operating System Architecture.
Selecting an Architecture.
6. Introduction to Real-Time Operating Systems.
Tasks and Task States.
Tasks and Data.
Semaphores and Shared Data.
7. More Operating System Services.
Message Queues, Mailboxes, and Pipes.
Interrupt Routines in an RTOS Environment.
8. Basic Design Using a Real-Time Operating System.
Encapsulating Semaphores and Queues.
Hard Real-Time Scheduling Considerations.
Saving Memory Space.
9. Embedded Software Development Tools.
Host and Target Machines.
Linker/Locators for Embedded Software.
Getting Embedded Software into the Target System.
10. Debugging Techniques.
Testing on Your Host Machine.
Instruction Set Simulators.
The assert Macro.
Using Laboratory Tools.
11. An Example System.
What the Program Does.
Environment in Which the Program Operates.
A Guide to the Source Code.