1. A First Look at Embedded Systems 1.1 Examples of Embedded Systems 1.2 Typical Hardware Chapter Summary 2. Hardware Fundamentals for the Software Engineer 2.1 Terminology 2.2 Gates 2.3 A Few Other Basic Considerations 2.4 Timing Diagrams 2.5 Memory Chapter Summary Problems 3. Advanced Hardware Fundamentals 3.1 Microprocessors 3.2 Buses 3.3 Direct Memory Access 3.4 Interrupts 3.5 Other Common Parts 3.6 Built-Ins on the Microprocessor 3.7 Conventions Used on Schematics 3.8 A Sample Schematic 3.9 A Last Word about Hardware Chapter Summary Problems 4. Interrupts 4.1 Microprocessor Architecture 4.2 Interrupt Basics 4.3 The Shared-Data Problem 4.4 Interrupt Latency Chapter Summary Problems 5. Survey of Software Architectures 5.1 Round-Robin 5.2 Round-Robin with Interrupts 5.3 Function-Queue-Scheduling Architectur 5.4 Real-Time Operating System Architecture 5.5 Selecting an Architecture Chapter Summary Problems 6. Introduction to Real-Time Operating Systems 6.1 Tasks and Task States 6.2 Tasks and Data 6.3 Semaphores and Shared Data Chapter Summary Problems 7. More Operating System Services 7.1 Message Queues, Mailboxes, and Pipes 7.2 Timer Functions 7.3 Events 7.4 Memory Management 7.5 Interrupt Routines in an RTOS Environment Chapter Summary Problems 8. Basic Design Using a Real-Time Operating System 8.1 Overview 8.2 Principles 8.3 An Example 8.4 Encapsulating Semaphores and Queues 8.5 Hard Real-Time Scheduling Considerations 8.6 Saving Memory Space 8.7 Saving Power Chapter Summary Problems 9. Embedded Software Development Tools 9.1 Host and Target Machines 9.2 Linker/Locators for Embedded Software 9.3 Getting Embedded Software into the Target System Chapter Summary 10. Debugging Techniques 10.1 Testing on Your Host Machine 10.2 Instruction Set Simulators 10.3 The assert Macro 10.4 Using Laboratory Tools Chapter Summary Problems 11. An Example System 11.1 What the Program Does 11.2 Environment in Which the Program Operates 11.3 A Guide to the Source Code 11.4 Source Code Summary Problems Afterword Further Reading Index