This book covers the basic concepts and principles of operating systems, showing how to apply them to the design and implementation of complete operating systems for embedded and real-time systems. It includes all the foundational and background information on ARM architecture, ARM instructions and programming, toolchain for developing programs, virtual machines for software implementation and testing, program execution image, function call conventions, run-time stack usage and link C programs with assembly code.
Embedded and Real-Time Operating Systems describes the design and implementation of a complete OS for embedded systems in incremental steps, explaining the design principles and implementation techniques. For Symmetric Multiprocessing (SMP) embedded systems, the author examines the ARM MPcore processors, which include the SCU and GIC for interrupts routing and interprocessor communication and synchronization by Software Generated Interrupts (SGIs).
This Second Edition covers ARM64 architecture and programming. These include exception levels, vector tables and exceptions handling, GICv3 programming and interrupt processing. It covers virtual to physical address mappings in ARMv8, and shows a 64-bit OS with kernel space in EL1 and separate user spaces in EL0. It also covers ARM TrustZone technology and secure systems. These include hardware and software architectures for secure and normal worlds, interactions and switching between the two worlds. It shows a secure world comprising a secure monitor in EL3 to provide service functions, and a normal world comprising processes in non-secure EL1, which use SMC to access service functions in the secure world.
Throughout the book, complete working sample systems demonstrate the design principles and implementation techniques. The content is suitable for advanced-level and graduate students working in software engineering, programming, and systems theory.