| |
| |
Foreword | |
| |
| |
Preface | |
| |
| |
Audience for this Book | |
| |
| |
Acknowledgments | |
| |
| |
| |
Introduction | |
| |
| |
| |
Real Life Examples of Embedded Systems | |
| |
| |
| |
Real-Time Embedded Systems | |
| |
| |
| |
The Future of Embedded Systems | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Basics of Developing for Embedded Systems | |
| |
| |
| |
Introduction | |
| |
| |
| |
Overview of Linkers and the Linking Process | |
| |
| |
| |
Executable and Linking Format | |
| |
| |
| |
Mapping Executable Images into Target Embedded Systems | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Embedded System Initialization | |
| |
| |
| |
Introduction | |
| |
| |
| |
Target System Tools and Image Transfer | |
| |
| |
| |
Target Boot Scenarios | |
| |
| |
| |
Target System Software Initialization Sequence | |
| |
| |
| |
On-Chip Debugging | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Introduction to Real-Time Operating Systems | |
| |
| |
| |
Introduction | |
| |
| |
| |
A Brief History of Operating Systems | |
| |
| |
| |
Defining an RTOS | |
| |
| |
| |
The Scheduler | |
| |
| |
| |
Objects | |
| |
| |
| |
Services | |
| |
| |
| |
Key Characteristics of an RTOS | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Tasks | |
| |
| |
| |
Introduction | |
| |
| |
| |
Defining a Task | |
| |
| |
| |
Task States and Scheduling | |
| |
| |
| |
Typical Task Operations | |
| |
| |
| |
Typical Task Structure | |
| |
| |
| |
Synchronization, Communication, and Concurrency | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Semaphores | |
| |
| |
| |
Introduction | |
| |
| |
| |
Defining Semaphores | |
| |
| |
| |
Typical Semaphore Operations | |
| |
| |
| |
Typical Semaphore Use | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Message Queues | |
| |
| |
| |
Introduction | |
| |
| |
| |
Defining Message Queues | |
| |
| |
| |
Message Queue States | |
| |
| |
| |
Message Queue Content | |
| |
| |
| |
Message Queue Storage | |
| |
| |
| |
Typical Message Queue Operations | |
| |
| |
| |
Typical Message Queue Use | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Other Kernel Objects | |
| |
| |
| |
Introduction | |
| |
| |
| |
Pipes | |
| |
| |
| |
Event Registers | |
| |
| |
| |
Signals | |
| |
| |
| |
Condition Variables | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Other RTOS Services | |
| |
| |
| |
Introduction | |
| |
| |
| |
Other Building Blocks | |
| |
| |
| |
Component Configuration | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Exceptions and Interrupts | |
| |
| |
| |
Introduction | |
| |
| |
| |
What are Exceptions and Interrupts? | |
| |
| |
| |
Applications of Exceptions and Interrupts | |
| |
| |
| |
A Closer Look at Exceptions and Interrupts | |
| |
| |
| |
Processing General Exceptions | |
| |
| |
| |
The Nature of Spurious Interrupts | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Timer and Timer Services | |
| |
| |
| |
Introduction | |
| |
| |
| |
Real-Time Clocks and System Clocks | |
| |
| |
| |
Programmable Interval Timers | |
| |
| |
| |
Timer Interrupt Service Routines | |
| |
| |
| |
A Model for Implementing the Soft-Timer Handling Facility | |
| |
| |
| |
Timing Wheels | |
| |
| |
| |
Soft Timers and Timer Related Operations | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
I/O Subsystem | |
| |
| |
| |
Introduction | |
| |
| |
| |
Basic I/O Concepts | |
| |
| |
| |
The I/O Subsystem | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Memory Management | |
| |
| |
| |
Introduction | |
| |
| |
| |
Dynamic Memory Allocation in Embedded Systems | |
| |
| |
| |
Fixed-Size Memory Management in Embedded Systems | |
| |
| |
| |
Blocking vs. Non-Blocking Memory Functions | |
| |
| |
| |
Hardware Memory Management Units | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Modularizing an Application for Concurrency | |
| |
| |
| |
Introduction | |
| |
| |
| |
An Outside-In Approach to Decomposing Applications | |
| |
| |
| |
Guidelines and Recommendations for Identifying Concurrency | |
| |
| |
| |
Schedulability Analysis--Rate Monotonic Analysis | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Synchronization and Communication | |
| |
| |
| |
Introduction | |
| |
| |
| |
Synchronization | |
| |
| |
| |
Communication | |
| |
| |
| |
Resource Synchronization Methods | |
| |
| |
| |
Critical Section Revisited | |
| |
| |
| |
Common Practical Design Patterns | |
| |
| |
| |
Specific Solution Design Patterns | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
Common Design Problems | |
| |
| |
| |
Introduction | |
| |
| |
| |
Resource Classification | |
| |
| |
| |
Deadlocks | |
| |
| |
| |
Priority Inversion | |
| |
| |
| |
Points to Remember | |
| |
| |
| |
References | |
| |
| |
About the Authors | |
| |
| |
Index | |