Book description
This new edition has been fully revised and updated to include extensive information on the ARM Cortex-M4 processor, providing a complete up-to-date guide to both Cortex-M3 and Cortex-M4 processors, and which enables migration from various processor architectures to the exciting world of the Cortex-M3 and M4.
This book presents the background of the ARM architecture and outlines the features of the processors such as the instruction set, interrupt-handling and also demonstrates how to program and utilize the advanced features available such as the Memory Protection Unit (MPU).
Chapters on getting started with IAR, Keil, gcc and CooCox CoIDE tools help beginners develop program codes. Coverage also includes the important areas of software development such as using the low power features, handling information input/output, mixed language projects with assembly and C, and other advanced topics.
- Two new chapters on DSP features and CMSIS-DSP software libraries, covering DSP fundamentals and how to write DSP software for the Cortex-M4 processor, including examples of using the CMSIS-DSP library, as well as useful information about the DSP capability of the Cortex-M4 processor
- A new chapter on the Cortex-M4 floating point unit and how to use it
- A new chapter on using embedded OS (based on CMSIS-RTOS), as well as details of processor features to support OS operations
- Various debugging techniques as well as a troubleshooting guide in the appendix
- Topics on software porting from other architectures
- A full range of easy-to-understand examples, diagrams and quick reference appendices
Table of contents
- Cover image
- Title page
- Table of Contents
- Copyright
- Foreword
- Preface
- Synopsis
- About this Book
- Contributor Bio-Paul Beckmann
- Acknowledgments
- Terms and Abbreviations
- Conventions
- Chapter 1. Introduction to ARM® Cortex®-M Processors
-
Chapter 2. Introduction to Embedded Software Development
- Abstract
- 2.1 What are inside typical ARM® microcontrollers?
- 2.2 What you need to start
- 2.3 Software development flow
- 2.4 Compiling your applications
- 2.5 Software flow
- 2.6 Data types in C programming
- 2.7 Inputs, outputs, and peripherals accesses
- 2.8 Microcontroller interfaces
- 2.9 The Cortex® microcontroller software interface standard (CMSIS)
- Chapter 3. Technical Overview
- Chapter 4. Architecture
-
Chapter 5. Instruction Set
- Abstract
- 5.1 Background to the instruction set in ARM® Cortex®-M processors
- 5.2 Comparison of the instruction set in ARM® Cortex®-M processors
- 5.3 Understanding the assembly language syntax
- 5.4 Use of a suffix in instructions
- 5.5 Unified assembly language (UAL)
- 5.6 Instruction set
- 5.7 Cortex®-M4-specific instructions
- 5.8 Barrel shifter
- 5.9 Accessing special instructions and special registers in programming
-
Chapter 6. Memory System
- Abstract
- 6.1 Overview of memory system features
- 6.2 Memory map
- 6.3 Connecting the processor to memory and peripherals
- 6.4 Memory requirements
- 6.5 Memory endianness
- 6.6 Data alignment and unaligned data access support
- 6.7 Bit-band operations
- 6.8 Default memory access permissions
- 6.9 Memory access attributes
- 6.10 Exclusive accesses
- 6.11 Memory barriers
- 6.12 Memory system in a microcontroller
-
Chapter 7. Exceptions and Interrupts
- Abstract
- 7.1 Overview of exceptions and interrupts
- 7.2 Exception types
- 7.3 Overview of interrupt management
- 7.4 Definitions of priority
- 7.5 Vector table and vector table relocation
- 7.6 Interrupt inputs and pending behaviors
- 7.7 Exception sequence overview
- 7.8 Details of NVIC registers for interrupt control
- 7.9 Details of SCB registers for exception and interrupt control
- 7.10 Details of special registers for exception or interrupt masking
- 7.11 Example procedures in setting up interrupts
- 7.12 Software interrupts
- 7.13 Tips and hints
- Chapter 8. Exception Handling in Detail
-
Chapter 9. Low Power and System Control Features
- Abstract
- 9.1 Low power designs
- 9.2 Low power features
- 9.3 Using WFI and WFE instructions in programming
- 9.4 Developing low power applications
- 9.5 The SysTick timer
- 9.6 Self-reset
- 9.7 CPU ID base register
- 9.8 Configuration control register
- 9.9 Auxiliary control register
- 9.10 Co-processor access control register
- Chapter 10. OS Support Features
- Chapter 11. Memory Protection Unit (MPU)
- Chapter 12. Fault Exceptions and Fault Handling
- Chapter 13. Floating Point Operations
- Chapter 14. Introduction to the Debug and Trace Features
- Chapter 15. Getting Started with Keil Microcontroller Development Kit for ARM®
- Chapter 16. Getting Started with the IAR Embedded Workbench for ARM®
-
Chapter 17. Getting Started with the GNU Compiler Collection (gcc)
- Abstract
- 17.1 The GNU Compiler Collection (gcc) toolchain
- 17.2 Typical development flow
- 17.3 Creating a simple blinky project
- 17.4 Overview of the command line options
- 17.5 Flash programming
- 17.6 Using Keil™ MDK-ARM with GNU tools for ARM Embedded Processors
- 17.7 Using CoIDE with GNU tools for ARM® Embedded Processors
- 17.8 Commercial gcc-based development suites
- Chapter 18. Input and Output Software Examples
- Chapter 19. Using Embedded Operating Systems
- Chapter 20. Assembly and Mixed Language Projects
- Chapter 21. ARM® Cortex®-M4 and DSP Applications
- Chapter 22. Using the ARM® CMSIS-DSP Library
-
Chapter 23. Advanced Topics
- Abstract
- 23.1 Decisions and branches
- 23.2 Performance considerations
- 23.3 Double-word stack alignment
- 23.4 Various methods for semaphore implementation
- 23.5 Non-base Thread enable
- 23.6 Re-entrant Interrupt Handler
- 23.7 Bit Data Handling in C
- 23.8 Startup code
- 23.9 Stack overflow detection
- 23.10 Flash patch feature
- 23.11 Revision versions of the Cortex®-M3 and Cortex-M4 processors
- Chapter 24. Software Porting
- References
- Index
- Appendix A. Instruction Set Summary
- Appendix B. Graphical Representations of DSP Instructions
- Appendix C. Addition of 16-bit Thumb® Instructions in Recent Architecture Versions
- Appendix D. Cortex®-M3/M4 Exceptions Quick Reference
- Appendix E. CMSIS-Core Functions Quick Reference
- Appendix F. NVIC and SCB Registers Quick Reference
- Appendix G. Cortex®-M3/M4 Debug Components Programmer’s Model
- Appendix H. Connectors for Debug and Trace
- Appendix I. Troubleshooting Guide
Product information
- Title: The Definitive Guide to ARM® Cortex®-M3 and Cortex®-M4 Processors, 3rd Edition
- Author(s):
- Release date: October 2013
- Publisher(s): Newnes
- ISBN: 9780124079182
You might also like
book
The Definitive Guide to ARM® Cortex®-M0 and Cortex-M0+ Processors, 2nd Edition
The Definitive Guide to the ARM® Cortex®-M0 and Cortex-M0+ Processors, Second Edition explains the architectures underneath …
book
Definitive Guide to Arm Cortex-M23 and Cortex-M33 Processors
The Definitive Guide to Arm® Cortex®-M23 and Cortex-M33 Processors focuses on the Armv8-M architecture and the …
book
Architecting High-Performance Embedded Systems
Explore the complete process of developing systems based on field-programmable gate arrays (FPGAs), including the design …
book
Making Embedded Systems, 2nd Edition
Interested in developing embedded systems? Since they don't tolerate inefficiency, these systems require a disciplined approach …