The designer's guide to the cortex-m processor family

The Designer’s Guide to the Cortex-M Microcontrollers gives you an easy-to-understand introduction to the concepts required to develop programs in C with a Cortex-M based microcontroller. The book begins with an overview of the Cortex-M family, giving architectural descriptions supported with practi...

Descripción completa

Detalles Bibliográficos
Otros Autores: Martin, Trevor, author (author), Rogers, Mark, designer (designer)
Formato: Libro electrónico
Idioma:Inglés
Publicado: Amsterdam, [Netherlands] : Newnes 2016.
Edición:Second edition
Materias:
Ver en Biblioteca Universitat Ramon Llull:https://discovery.url.edu/permalink/34CSUC_URL/1im36ta/alma991009630456906719
Tabla de Contenidos:
  • Front Cover
  • “““The Designer's Guide to the Cortex-M Processor Family“““““
  • Copyright Page
  • Dedication
  • Contents
  • Foreword
  • Preface
  • Acknowledgments
  • 1 Introduction to the Cortex-M Processor Family
  • Cortex Profiles
  • Cortex-M3
  • Advanced Architectural Features
  • Cortex-M0
  • Cortex-M0+
  • Cortex-M4
  • DSP Instructions
  • Cortex-M7
  • Conclusion
  • 2 Developing Software for the Cortex-M Family
  • Introduction
  • Keil Microcontroller Development Kit
  • Software Packs
  • The Tutorial Exercises
  • Installation
  • Exercise 2.1 Building a First Program
  • The Blinky Project
  • Project Configuration
  • Exercise 2.2 Hardware Debug
  • Conclusion
  • 3 Cortex-M Architecture
  • Introduction
  • Cortex-M Instruction Set
  • Programmer's Model and CPU Registers
  • Program Status Register
  • Q Bit and Saturated Maths Instructions
  • Interrupts and Multicycle Instructions
  • Conditional Execution-If Then Blocks
  • Exercise 3.1 Saturated Maths and Conditional Execution
  • Cortex-M Memory Map and Busses
  • Write Buffer
  • Memory Barrier Instructions
  • System Control Block
  • Bit Manipulation
  • Exercise 3.2 Bit Banding
  • Dedicated Bit Manipulation Instructions
  • SysTick Timer
  • Nested Vector Interrupt Controller
  • Operating Modes
  • Interrupt Handling-Entry
  • Interrupt Handling-Exit
  • Interrupt Handling-Exit Important!
  • Exercise 3.3 SysTick Interrupt
  • Cortex-M Processor Exceptions
  • Usage Fault
  • Bus Fault
  • Memory Manager Fault
  • Hard Fault
  • Enabling Fault Exceptions
  • Priority and Preemption
  • Groups and Subgroup
  • Runtime Priority Control
  • Exception Model
  • NVIC Tail Chaining
  • NVIC Late Arriving
  • NVIC POP Preemption
  • Exercise 3.3 Working with Multiple Interrupts
  • Bootloader Support
  • Exercise 3.4 Bootloader
  • Power Management
  • Entering Low-Power Modes
  • Configuring the Low-Power Modes.
  • Exercise 3.3 Low-Power Modes
  • Moving From the Cortex-M3
  • Cortex-M4
  • Cortex-M0
  • Cortex-M0+
  • Conclusion
  • 4 Cortex Microcontroller Software Interface Standard
  • Introduction
  • CMSIS Specifications
  • CMSIS-Core
  • CMSIS-RTOS
  • CMSIS-DSP
  • CMSIS-Driver
  • CMSIS-SVD and DAP
  • CMSIS-Pack
  • Foundations of CMSIS
  • Coding Rules
  • MISRA-C
  • CMSIS-Core Structure
  • Startup Code
  • System Code
  • Device Header File
  • CMSIS-Core Header Files
  • Interrupts and Exceptions
  • Exercise 4.1 CMSIS and User Code Comparison
  • CMSIS-Core Register Access
  • CMSIS-Core CPU Intrinsic Instructions
  • Exercise 4.2 Intrinsic Bit Manipulation
  • CMSIS-SIMD Intrinsics
  • CMSIS-Core Debug Functions
  • Hardware Breakpoint
  • Instrumentation Trace
  • CMSIS-Core Functions for Corex-M7
  • Conclusion
  • 5 Advanced Architecture Features
  • Introduction
  • Cortex Processor Operating Modes
  • Exercise 5.1 Stack Configuration
  • Supervisor Call
  • Exercise 5.2 Supervisor Call
  • PEND_SV Exception
  • Example Pend_SV
  • Interprocessor Events
  • Exclusive Access
  • Exercise 5.4 Exclusive Access
  • Memory Protection Unit
  • Configuring the MPU
  • Exercise 5.5 MPU Configuration
  • MPU Subregions
  • MPU Limitations
  • AHB Lite Bus Interface
  • Conclusion
  • 6 Cortex-M7 Processor
  • Superscalar Architecture
  • Branch Prediction
  • Exercise 6.1 Simple Loop
  • Bus Structure
  • Memory Hierarchy
  • Exercise 6.2 Locating Code and Data into the TCM
  • Cache Units
  • Cache Operation
  • Instruction Cache
  • Exercise 6.3 Instruction Cache
  • Data Cache
  • Memory Barriers
  • Exercise 6.4 Example Data Cache
  • Memory Protection Unit and Cache Configuration
  • Cache Policy
  • Managing the Data Cache
  • Switch Off the Cache
  • Disable Caching over a Region of System Memory
  • Change the Cache Policy for a Region of System Memory.
  • Use the Cache Management Functions to Guarantee Coherency
  • Exercise 6.5 Data Cache Configuration
  • Double Precision Floating Point Unit
  • Functional Safety
  • Cortex-M7 Safety Features
  • Safety Documentation
  • Development Tools
  • Conclusion
  • 7 Debugging with CoreSight
  • Introduction
  • CoreSight Hardware
  • Debugger Hardware
  • CoreSight Debug Architecture
  • Exercise 7.1 CoreSight Debug
  • Hardware Configuration
  • Software Configuration
  • Debug Limitations
  • Instrumentation Trace
  • Exercise 7.2 Setting Up the ITM
  • System Control Block Debug Support
  • Tracking Faults
  • Exercise 7.3 Processor Fault Exceptions
  • Instruction Trace with the Embedded Trace Macrocell
  • Exercise 7.4 Using the ETM Trace
  • CMSIS-DAP
  • Cortex-M0+ MTB
  • Exercise 7.5 Micro Trace Buffer
  • CMSIS System Viewer Description
  • Exercise 7.6 CMSIS-SVD
  • Conclusion Debug Features Summary
  • 8 Practical DSP for Cortex-M4 and Cortex-M7
  • Introduction
  • Hardware FPU
  • FPU Integration
  • FPU Registers
  • Cortex-M7 FPU
  • Enabling the FPU
  • Exceptions and the FPU
  • Using the FPU
  • Exercise 8.1 Floating Point Unit
  • Cortex-M4/M7 DSP and SIMD Instructions
  • Exercise 8.2 SIMD Instructions
  • Exercise 8.3 Optimizing DSP Algorithms
  • The CMSIS-DSP Library
  • CMSIS-DSP Library Functions
  • Exercise 8.3 Using the CMSIS-DSP Library
  • DSP Data Processing Techniques
  • Exercise 8.4 FIR Filter with Block Processing
  • Fixed Point DSP with Q Numbers
  • Exercise 8.5 Fixed Point FFT Transform
  • Conclusion
  • 9 Cortex Microcontroller Software Interface Standard-Real-Time Operating System
  • Introduction
  • First Steps with CMSIS-RTOS
  • Accessing the CMSIS-RTOS API
  • Threads
  • Starting the RTOS
  • Exercise 9.1 A First CMSIS-RTOS Project
  • Creating Threads
  • Exercise 9.2 Creating and Managing Threads
  • Thread Management and Priority.
  • Exercise 9.3 Creating and Managing Threads II
  • Multiple Instances
  • Exercise 9.4 Multiple Thread Instances
  • Time Management
  • Time Delay
  • Waiting for an Event
  • Exercise 9.5 Time Management
  • Virtual Timers
  • Exercise 9.6 Virtual Timer
  • Sub-Millisecond Delays
  • Idle Demon
  • Exercise 9.7 Idle Thread
  • Inter-Thread Communication
  • Signals
  • Exercise 9.8 Signals
  • Semaphores
  • Exercise 9.9 Semaphore Signaling
  • Using Semaphores
  • Signaling
  • Multiplex
  • Exercise 9.10 Multiplex
  • Rendezvous
  • Exercise 9.11 Rendezvous
  • Barrier Turnstile
  • Exercise 9.12 Semaphore Barrier
  • Semaphore Caveats
  • Mutex
  • Exercise 9.13 Mutex
  • Mutex Caveats
  • Data Exchange
  • Message Queue
  • Exercise 9.14 Message Queue
  • Memory Pool
  • Exercise 9.15 Memory Pool
  • Mail Queue
  • Exercise 9.16 Mailbox
  • Configuration
  • Thread Definition
  • Kernel Debug Support
  • System Timer Configuration
  • Timeslice Configuration
  • Scheduling Options
  • Preemptive Scheduling
  • Round-Robin Scheduling
  • Round-Robin Preemptive Scheduling
  • Cooperative Multitasking
  • RTX Source Code
  • RTX License
  • Conclusion
  • 10 RTOS Techniques
  • Introduction
  • RTOS and Interrupts
  • RTOS Interrupt Handling
  • Exercise 10.1 RTOS Interrupt Exercise Handling
  • User Supervisor Functions
  • Exercise 10.2 RTOS and User SVC Exceptions
  • Power Management
  • Power Management First Steps
  • Power Management Strategy
  • Watchdog Management
  • Integrating ISRs
  • Exercise 10.3 Power and Watchdog Management
  • Startup Barrier
  • Designing for Real Time
  • Buffering Techniques-The Double or Circular Buffer
  • Buffering Techniques FIFO Message Queue
  • Balancing the Load
  • Exercise 10.4 RTX Real Time
  • Shouldering the Load, the Direct Memory Access Controller
  • Designing for Debug
  • Exercise 10.5 Run-Time Diagnostics
  • Conclusion
  • 11 Test Driven Development.
  • Introduction
  • The TDD Development Cycle
  • Test Framework
  • Test Automation
  • Installing the Unity Framework
  • Exercise 11.1 Test Driven Development
  • Adding the Unity Test Framework
  • Configuring the Project Build Targets
  • Adding the Test Cases
  • Automating the TDD Cycle
  • Testing RTOS Threads
  • Exercise 11.2 Testing RTOS Threads
  • Decoupling Low Level Functions
  • Testing Interrupts
  • Exercise 11.3 Testing with Interrupts
  • Conclusion
  • 12 Software Components
  • Introduction
  • CMSIS Driver
  • CMSIS Driver API
  • Exercise 12.1 CMSIS-Driver
  • Driver Validation
  • Exercise 12.2 Driver Validation
  • Designing a Software Component
  • Exercise 12.3 GPS Component
  • Creating a Software Pack
  • Software Pack Structure
  • Software Pack Utilities
  • Configuration Wizard
  • Exercise 12.4 Configuration Wizard
  • Deploying Software Components
  • Conclusion
  • 13 ARMv8-M
  • Introduction
  • Common Architectural Enhancements
  • ARMv8 Baseline Enhancements
  • ARMv8-M Mainline Enhancements
  • TrustZone
  • Interrupts and Exceptions
  • Software Development
  • Compiler
  • Real-Time Operating System
  • Debugger
  • Cortex Microcontroller Software Interface Standard
  • Conclusion
  • Appendix
  • Contact Details
  • Appendices
  • Debug Tools and Software
  • Commercial GNU-Based Toolchains
  • Commercial Toolchains
  • Rapid Prototyping and Evaluation Modules
  • Real-Time Operating Systems
  • Digital Signal Processing
  • Books
  • Programming
  • Cortex-M Processor
  • Standards
  • Digital Signal Processing
  • Real-Time Operating System
  • Silicon Vendors
  • Training
  • Index
  • Back Cover.