Book description
The Definitive Guide to Arm® Cortex®-M23 and Cortex-M33 Processors focuses on the Armv8-M architecture and the features that are available in the Cortex-M23 and Cortex- M33 processors.
This book covers a range of topics, including the instruction set, the programmer’s model, interrupt handling, OS support, and debug features. It demonstrates how to create software for the Cortex-M23 and Cortex-M33 processors by way of a range of examples, which will enable embedded software developers to understand the Armv8-M architecture.
This book also covers the TrustZone® technology in detail, including how it benefits security in IoT applications, its operations, how the technology affects the processor’s hardware (e.g., memory architecture, interrupt handling, etc.), and various other considerations in creating secure software.
- Presents the first book on Armv8-M Architecture and its features as implemented in the Cortex-M23 and Cortex-M33 processors
- Covers TrustZone technology in detail
- Includes examples showing how to create software for Cortex-M23/M33 processors
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Dedication
- Preface
- Contributing author: Paul Beckmann
- Acknowledgments
-
Chapter 1: Introduction
- Abstract
- 1.1: Microcontrollers and processors
- 1.2: Classification of processors
- 1.3: The Cortex-M23 and Cortex-M33 processors and the Armv8-M architecture
- 1.4: Characteristics of the Cortex-M23 and Cortex-M33 processors
- 1.5: Why have two different processors?
- 1.6: Applications of the Cortex-M23 and Cortex-M33
- 1.7: Technical features
- 1.8: Comparison with previous generations of Cortex-M processors
- 1.9: Advantages of the Cortex-M23 and Cortex-M33 processors
- 1.10: Understanding microcontroller programming
- 1.11: Further reading
- Chapter 2: Getting started with Cortex-M programming
-
Chapter 3: Technical overview of the Cortex-M23 and Cortex-M33 processors
- Abstract
- 3.1: Design objectives of Cortex-M23 and Cortex-M33 processors
- 3.2: Block diagrams
- 3.3: Processor
- 3.4: Instruction set
- 3.5: Memory map
- 3.6: Bus interfaces
- 3.7: Memory protection
- 3.8: Interrupt and exception handling
- 3.9: Low power features
- 3.10: OS support features
- 3.11: Floating-point unit
- 3.12: Coprocessor interface and Arm Custom Instructions
- 3.13: Debug and trace support
- 3.14: Multicore system design support
- 3.15: Key feature enhancements in Cortex-M23 and Cortex-M33 processors
- 3.16: Compatibility with other Cortex-M processors
- 3.17: Processor configuration options
- 3.18: Introduction to TrustZone
- 3.19: Why TrustZone enables better security?
- 3.20: Firmware asset protection with eXecute-Only-Memory (XOM)
- Chapter 4: Architecture
-
Chapter 5: Instruction set
- Abstract
- 5.1: Background
- 5.2: Instruction set features in various Cortex-M processors
- 5.3: Understanding the assembly language syntax
- 5.4: Use of a suffix in an instruction
- 5.5: Unified Assembly Language (UAL)
- 5.6: Instruction set—Moving data within the processors
- 5.7: Instruction set—Memory access
- 5.8: Instruction set—Arithmetic operations
- 5.9: Instruction set—Logic operations
- 5.10: Instruction set—Shift and rotate operations
- 5.11: Instruction set—Data conversions (extend and reverse ordering)
- 5.12: Instruction set—Bit field processing
- 5.13: Instruction set—Saturation operations
- 5.14: Instruction set—Program flow control
- 5.15: Instruction set—DSP extension
- 5.16: Instruction set—Floating point support instructions
- 5.17: Instruction set—Exception-related instructions
- 5.18: Instruction set—Sleep mode-related instructions
- 5.19: Instruction set—Memory barrier instructions
- 5.20: Instruction set—TrustZone support instructions
- 5.21: Instruction set—Coprocessor and Arm custom instructions support
- 5.22: Instruction set—Other functions
- 5.23: Accessing special registers with the CMSIS-CORE
-
Chapter 6: Memory system
- Abstract
- 6.1: Overview of the memory system
- 6.2: Memory map
- 6.3: Memory types and memory attributes
- 6.4: Access permission management
- 6.5: Memory endianness
- 6.6: Data alignment and unaligned data access support
- 6.7: Exclusive access support
- 6.8: Memory ordering and memory barrier instructions
- 6.9: Bus wait state and error support
- 6.10: Single-cycle I/O port—Cortex-M23 only
- 6.11: Memory systems in microcontrollers
- 6.12: Software considerations
- Chapter 7: TrustZone support in the memory system
-
Chapter 8: Exceptions and interrupts—Architecture overview
- Abstract
- 8.1: Overview of exceptions and interrupts
- 8.2: Exception types
- 8.3: Overview of interrupts and exceptions management
- 8.4: Exception sequence introduction
- 8.5: Definitions of exception priority levels
- 8.6: Vector table and vector table offset register (VTOR)
- 8.7: Interrupt input and pending behaviors
- 8.8: Target states of exceptions and interrupts in TrustZone systems
- 8.9: Stack frames
- 8.10: EXC_RETURN
- 8.11: Classification of synchronous and asynchronous exceptions
-
Chapter 9: Management of exceptions and interrupts
- Abstract
- 9.1: Overview of exception and interrupt management
- 9.2: Details of the NVIC registers for interrupt management
- 9.3: Details of SCB registers for system exception management
- 9.4: Details of special registers for exception or interrupt masking
- 9.5: Vector table definition in programming
- 9.6: Interrupt latency and exception handling optimizations
- 9.7: Tips and hints
-
Chapter 10: Low power and system control features
- Abstract
- 10.1: The quest for low power
- 10.2: Low power features in the Cortex-M23 and Cortex-M33 processors
- 10.3: More on WFI, WFE, and SEV instructions
- 10.4: Developing low power applications
- 10.5: System Control Block (SCB) and system control features
- 10.6: Auxiliary Control Register
- 10.7: Other registers in the System Control Block
-
Chapter 11: OS support features
- Abstract
- 11.1: Overview of the OS support features
- 11.2: SysTick timer
- 11.3: Banked stack pointers
- 11.4: Stack limit checking
- 11.5: SVCall and PendSV exceptions
- 11.6: Unprivileged execution level and the Memory Protection Unit (MPU)
- 11.7: Exclusive access
- 11.8: How should an RTOS run in a TrustZone environment?
- 11.9: Concepts of RTOS operations in Cortex-M processors
- Chapter 12: Memory Protection Unit (MPU)
- Chapter 13: Fault exceptions and fault handling
- Chapter 14: The Floating-Point Unit (FPU) in the Cortex-M33 processor
-
Chapter 15: Coprocessor interface and Arm Custom Instructions
- Abstract
- 15.1: Overview
- 15.2: Overview of the architecture
- 15.3: Accessing coprocessor instructions via intrinsic functions in C
- 15.4: Accessing Arm Custom Instructions via the intrinsic functions in C
- 15.5: Software steps to take when enabling the coprocessor and the Arm Custom Instructions
- 15.6: Coprocessor power control
- 15.7: Hints and tips
- Chapter 16: Introduction to the debug and trace features
- Chapter 17: Software development
- Chapter 18: Secure software development
-
Chapter 19: Digital signal processing on the cortex-M33 processor
- Abstract
- 19.1: DSP on a microcontroller?
- 19.2: Why use a Cortex-M processor for a DSP application?
- 19.3: Dot product example
- 19.4: Getting more performance by utilizing the SIMD instructions
- 19.5: Dealing with overflows
- 19.6: Introduction to data types for signal processing
- 19.7: Cortex-M33 DSP instructions
- 19.8: Writing optimized DSP code for the Cortex-M33 processor
-
Chapter 20: Using the Arm CMSIS-DSP library
- Abstract
- 20.1: Overview of the library
- 20.2: Function naming convention
- 20.3: Getting help
- 20.4: Example 1—DTMF demodulation
- 20.5: Example 2—Least squares motion tracking
- 20.6: Example 3—Real-time filter design
- 20.7: How to determine the implemented instruction set features in a Cortex-M33 based system
- Chapter 21: Advanced topics
- Chapter 22: Introduction to IoT security and the PSA Certified™ framework
- Index
Product information
- Title: Definitive Guide to Arm Cortex-M23 and Cortex-M33 Processors
- Author(s):
- Release date: December 2020
- Publisher(s): Newnes
- ISBN: 9780128207369
You might also like
book
Linux Device Driver Development - Second Edition
Get up to speed with the most important concepts in driver development and focus on common …
book
Linux Device Drivers, Second Edition
This book is for anyone who wants to support computer peripherals under the Linux operating system …
book
Architecting High-Performance Embedded Systems
Explore the complete process of developing systems based on field-programmable gate arrays (FPGAs), including the design …
book
The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, 3rd Edition
This new edition has been fully revised and updated to include extensive information on the ARM …