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', 'CAN'and 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