1.Introduction to Embedded Systems 1
1.1 An Embedded System 3
1.2 Processor in the System 7
1.3 Other Hardware Units 15
1.4 Software Embedded into a System 28
1.5 Exemplary Embedded Systems 37
1.6 Embedded System-On-Chip(SOC)and in VLSI Circuit 39
Summary 43
List of Kevwords and their Definitions 44
Review Questions 47
Practice Exercises 48
2.Processor and Memory Organisation 50
2.1 Structural Units in a Processor 51
2.2 Processor Selection for an Embedded System 61
2.3 Memory Devices 65
2.4 Memory Selection for an Embedded System 68
2.5 Allocation of Memory to Program Segments and Blocks and Memory Map of a System 72
2.6 Direct Memory Access 88
2.7 Interfacing Processor,Memories and I/O Devices 89
Summary 91
List of Keywords and their Definitions 92
Review Questions 94
Practice Exercises 95
3.Devices and Buses for Device Networks 97
3.1 I/O Devices 98
3.2 Timer and Counting Devices 109
3.3 Serial Communication Using the 'I2C','CAN'and Advanced I/O Buses between the Networked Multiple Devices 114
3.4 Host System or Computer Parallel Communication between the Networked I/O Multiple Devices Using the ISA,PCI,PCI-X and Advanced Buses 118
Summary 121
List of Keywords and their Definitions 122
Review Questions 125
Practice Exercises 126
4.Device Drivers and Interrupts Servicing Mechanism 128
4.1 Device Drivers 130
4.2 Parallel Port Device Drivers in a System 139
4.3 Serial Port Device Drivers in a System 146
4.4 Device Drivers for Internal Programmable Timing Devices 149
4.5 Interrupt Servicing(Handling)Mechanism 150
4.6 Context and the Periods for Context-Switching,Deadline and Interrupt Latency 156
Summary 163
List of Keywords and their Definitions 164
Review Questions 166
Practice Exercises 166
5.Programming Concepts and Embedded Programming in C and C++ 167
5.1 Software Programming in Assembly Language(ALP)and in High Level Language'C' 168
5.2 'C' Program Elements:Header and Source Files and Preprocessor Directives 170
5.3 Program Elements:Macros and Functions 172
5.4 Program Elements:Data Types,Data Structures,Modifiers,Statements,Loops and Pointers 174
5.5 Queues 185
5.6 Stacks 196
5.7 Lists and Ordered Lists 198
5.8 Embedded Programming in C++ 209
5.9 Embedded Programming in Java 211
5.10 'C' Program Compiler and Cross-Compiler 214
5.11 Source Code Engineering Tools for Embedded C/C++ 215
5.12 Optimisation of Memory Needs 215
Summary 217
List of Keywords and their Definitions 219
Review Questions 221
Practice Exercises 221
6.Program Modeling Concepts in Single and Multiprocessor Systems Software-Development Process 222
6.1 Modeling Processes for Software Analysis Before Software Implementation 223
6.2 Programming Models for Event Controlled or Response Time Constrained Real Time Programs 227
6.3 Modeling of Multiprocessor Systems 238
Summary 254
List of Keywords and their Definitions 255
Review Questions 256
Practice Exercises 257
7.Software Engineering Practices in the Embedded Software Development Process 258
7.1 Software Algorithm Complexity 260
7.2 Software Development Process Life Cycle and its Models 261
7.3 Software Analysis 265
7.4 Software Design 267
7.5 Software Implementation 270
7.6 Software Testing,Validating and Debugging 270
7.7 Real Time Programming Issues During 277
the Software Development Process 277
7.8 Software Project Management 278
7.9 Software Maintenance 282
7.10 Unified Modeling Language(UML) 284
Summary 290
List of Keywords and their Definitions 292
Review Questions 294
Practice Exercises 295
8.Inter-Process Communication and Synchronisation of Processes,Tasks and Threads 297
8.1 Multiple Processes in an Application 298
8.2 Problem of Sharing Data by Multiple Tasks and Routines 303
8.3 Inter Process Communication 314
Summary 323
List of Keywords and their Definitions 324
Review Questions 326
Practice Exercises 326
9.Real Time Operating Systems 327
9.1 Operating System Services 329
9.2 I/O Subsystems 338
9.3 Network Operating Systems 339
9.4 Real-Time and Embedded System Operating Systems 340
9.5 Interrupt Routines in RTOS Environment:Handling of Interrupt Source Call by the RTOSs 347
9.6 RTOS Task Scheduling Models,Interrupt Latency and Response Times of the Tasks as Performance Metrics 349
9.7 Performance Metric in Scheduling Models for Periodic,Sporadic and Aperiodic Tasks 360
9.8 IEEE Standard POSIX 1003.1b Functions for Standardisation of RTOS and Inter_Task Communication Functions 361
9.9 List of Basic Actions in a Preemptive Scheduler and Expected Times Taken at a Processor 363
9.10 Fifteen-Point Strategy for Synchronisation between the Processes,ISRs,OS Functions and Tasks and for Resource Management 364
9.11 Embedded Linux Internals:Linux Kernel for the Device Drivers and Embedded System 366
9.12 OS Security Issues 368
9.13 Mobile OS 370
Summary 370
List of Keywords and their Definitions 371
Review Questions 372
Practice Exercises 373
10.Real Time Operating System Programming Tools:Micro C/OS-Ⅱ and VxWorks 374
10.1 Need of a Well Tested and Debugged Real-Time Operating System(RTOS) 375
10.2 Use of μC/OS-Ⅱ 376
10.3 Use of VxWorks 424
Summary 446
List of Keywords and their Definitions 447
Review Questions 448
Practice Exercises 448
11.Case Studies of Programming with RTOS 450
11.1 Case Study of Coding for an Automatic Chocolate Vending Machine UsingMUCOS RTOS 451
11.2 Case Study of Coding for Sending Application Layer Byte Streams on a TCP/IP Network Using RTOS VxWorks 466
11.3 Case Study of an Embedded System for an Adaptive Cruise Control System in a Car 488
11.4 Case Study of an Embedded System for a Smart Card 502
Summary 514
List of Keywords and their Definitions 515
Review Questions 517
Practice Exercises 517
12.Hardware-Software Co-design in an Embedded System 519
12.1 Embedded System Project Management 521
12.2 Embedded System Design and Co-design Issues in System Development Process 522
12.3 Design Cycle in the Development Phase for an Embedded System 527
12.4 Uses of Target System or its Emulator and In-Circuit Emulator(ICE) 528
12.5 Use of Software Tools for Development of an Embedded System 532
12.6 Use of Scopes and Logic Analysers for System Hardware Tests 540
12.7 Issues in Embedded System Design 542
Summary 548
List of Keywords and their Definitions 550
Review Questions 552
Practice Exercises 553
Appendix A.CISC and RISC Processor Architectures and an Exemplary Instruction Set 555
A.1 Instructions and Their Processing in CISC and RISC Processors 555
A.2 An Exemplary Instruction Set—Arm7 560
A.3 Exemplary Assembly Language Progam for Arm Processors 562
List of Keywords and their Definitions 562
Appendix B.Embedded System High-performance Processors 563
B.1 Exemplary Arm Processors 564
B.2 Exemplary High Performance Processors 567
B.3 Accelerators 567
List of Keywords and their Definitions 568
Appendix C.Embedded System 8/16/32 Bit Microcontrollers and an Overview of their Architecture 569
C.1 Overview of the Architecture of Exemplary Intel,Motorola and PIC Family CISC Based Microcontrollers 569
C.2 Exemplary Motorola Family CISC and RISC Based New Generation Microcontrollers 572
List of Keywords and their Definitions 573
Appendix D.Embedded Digital Signal Processors 575
D.1 Architecture of Digital Signal Processors 575
D.2 DSP Processor Versus Conventional Processors 578
D.3 Fixed Point Arithmetic Versus Floating Point Arithmetic 578
D.4 DSP for Embedded Systems 579
List of Keywords and their Definitions 585
Appendix E.New Innovative Processors for Embedded Systems 587
E.1 Media Processors for Embedded Systems 587
List of Keywords and their Definitions 590
Appendix F.Serial and Parallel Buses 592
F.1 Emerging Serial Bus Standards(USB 2.0,IEEE1394) 592
F.2 Emerging Parallel Bus Standards(Compact PCI,PCI-X) 593
List of Keywords and their Definitions 593
Appendix G.Devices in Embedded Systems 594
G.1 Various Forms of ROM Devices 594
G.2 ROM Device Programmer 595
G.3 RAM Devices 600
G.4 Parallel Ports in Microcontrollers 602
G.5 Serial Communication Devices 602
G.6 Timers in Microcontrollers 605
G.7 Interrupt Sources and their Control in Various Families of Processors 607
G.8 Interrupts in the 80x86 Processors 608
G.9 Interrupts in68HC11 609
List of Keywords and their Definitions 610
Appendix H.Important Topics in Embedded Systems Architecture,Programming and Design 611
H.1 Suggested Syllabus Units 611
H.2 List of Topics that Covers the CDAC Embedded System Course Syllabus 613
References 615
Index 620