Acknowledgements 1. Introduction to Embedded Systems 1.1 An Embedded System 1.2 Processor in the System 1.3 Other Hardware Units 1.4 Software Embedded into a System 1.5 Exemplary Embedded Systems 1.6 Embedded System-On-Chip (SOC) and in VLSI Circuit Summary List of Keywords and their Definitions Review Questions Practice Exercises 2. Processor and Memory Organisation 2.1 Structural Units in a Processor 2.2 Processor Selection for an Embedded System 2.3 Memory Devices 2.4 Memory Selection for an Embedded System 2.5 Allocation of Memory to Program Segments and Blocks and Memory Map of a System 2.6 Direct Memory Access 2.7 Interfacing Processor, Memories and I/O Devices Summary List of Keywords and their Definitions Review Questions Practice Exercises 3. Devices and Buses for Device Networks 3.1 I/O Devices 3.2 Timer and Counting Devices 3.3 Serial Communication Using the I2C, CANand Advanced I/O Buses between the Networked Multiple Devices 3.4 Host System or Computer Parallel Communication between the Networked I/O Multiple Devices Using the ISA, PCI,PCI-X and Advanced Buses Summary List of Keywords and their Definitions Review Questions Practice Exercises 4. Device Drivers and Interrupts Servicing Mechanism 4.1 Device Drivers 4.2 Parallel Port Device Dri,~ers in a System 4.3 Serial Port Device Drivers in a System 4.4 Device Drivers for Internal Programmable Timing Devices 4.5 Interrupt Servicing (Handling) Mechanism 4.6 Context and the Periods for Context-Switching,Deadline and Interrupt Latency Summary List of Keywords and their Definitions Review Questions Practice Exercises 5. Programming Concepts and Embedded Programming in C and C++ 5.1 Software Programming in Assembly Language(ALP) and in High Level Language ‘C’ 5.2 ‘C’ Program Elements: Header and Source Files and Preprocessor Directives 5.3 Program Elements: Macros and Functions 5.4 Program Elements: Data Types, Data Structures,Modifiers, Statements, Loops and Pointers 5.5 Queues 5.6 Stacks 5.7 Lists and Ordered Lists 5.8 Embedded Programming in C++ 5.9 Embedded Programming in Java 5.10 ‘C’ Program Compiler and Cross-Compiler 5.11 Source Code Engineering Tools for Embedded C/C++ 5.12 Optimisation of Memory Needs Summary List of Keywords and their Definitions Review Questions Practice Exercises 6. Program Modeling Concepts in Single and Multiprocessor Systems Software-Development Process 6.1 Modeling Processes for Software Analysis Before Software Implementation 6.2 Programming Models for Event Controlled or Response Time Constrained Real Time Programs 6.3 Modeling of Multiprocessor Systems Summary List of Keywords and their Definitions Review Questions Practice Exercises 7. Software Engineering Practices 8. Inter-Process Communication and Synchronisation 9. Real Time Operating Systems 10. Real Time Operating System Programming Tools: Micro C/OS-II and VxWorks 11. Case Studies of Programming with RTOS 12. Hardware-Software Co-design in an Embedded System Appendix A. CISC and RISC Processor Architectures and an Exemplary Instruction Set Appendix B. Embedded System High-performance Processors Appendix C. Embedded System 8/16/32 Bit Microcontrollers and an Overview of their Architecture Appendix D. Embedded Digital Signal Processors Appendix E. New Innovative Processors for Embedded Systems Appendix G. Devices in Embedded Systems Appendix H. Important Topics in Embedded Systems Architecture,Programming and Design