Institutional Access

Secure Checkout

Free Shipping

Description

The Definitive Guide to the ARM® Cortex®-M0 and Cortex-M0+ Processors, Second Edition explains the architectures underneath ARM’s Cortex-M0 and Cortex-M0+ processors and their programming techniques.

Written by ARM’s Senior Embedded Technology Manager, Joseph Yiu, the book is packed with examples on how to use the features in the Cortex-M0 and Cortex-M0+ processors. It provides detailed information on the instruction set architecture, how to use a number of popular development suites, an overview of the software development flow, and information on how to locate problems in the program code and software porting.

This new edition includes the differences between the Cortex-M0 and Cortex-M0+ processors such as architectural features (e.g. unprivileged execution level, vector table relocation), new chapters on low power designs and the Memory Protection Unit (MPU), the benefits of the Cortex-M0+ processor, such as the new single cycle I/O interface, higher energy efficiency, better performance and the Micro Trace Buffer (MTB) feature, updated software development tools, updated Real Time Operating System examples using Keil™ RTX with CMSIS-RTOS APIs, examples of using various Cortex-M0 and Cortex-M0+ based microcontrollers, and much more.

Key Features

Presents detailed information on the differences between the Cortex-M0 and Cortex-M0+ processors

Covers software development flow, including examples for various development tools in both C and assembly languages

Includes in-depth coverage of design approaches and considerations for developing ultra low power embedded systems, the benchmark for energy efficiency in microcontrollers, and examples of utilizing low power features in microcontrollers

Readership

Embedded systems engineers, undergraduate and graduate students.

Table of Contents

Dedication

Foreword

Preface

Acknowledgment

Terms and Abbreviations

Conventions

References

Chapter 1. Introduction

1.1. Welcome to the World of Embedded Processors

1.2. Understanding Different Types of Processors

1.3. What Is Inside a Microcontroller

1.4. There is Something About ARM®…

1.5. Resources on Using ARM® Processors and ARM Microcontrollers

Chapter 2. Technical Overview

2.1. What are the Cortex®-M0 and Cortex-M0+ Processors?

2.2. Block Diagrams

2.3. Typical Systems

2.4. What Is ARMv6-M Architecture?

2.5. Software Portability Between Cortex®-M Processors

2.6. The Advantages of the ARM® Cortex®-M0 and Cortex-M0+ Processor

2.7. Applications of the Cortex®-M0 and Cortex-M0+ Processors

2.8. Why Using a 32-Bit Processor for Microcontroller Applications?

Chapter 3. Introduction to Embedded Software Development

3.1. Welcome to Embedded System Programming

3.2. Some Basic Concepts

3.3. Introduction to ARM® Cortex®-M Programming

3.4. Software Development Flow

3.5. Cortex® Microcontroller Software Interface Standard

3.6. Other Information on Software Development

Chapter 4. Architecture

4.1. Overview of ARMv6-M Architecture

4.2. Programmer's Model

4.3. Memory System

4.4. Stack Memory Operations

4.5. Exceptions and Interrupts

4.6. Nested Vectored Interrupt Controller

4.7. System Control Block

4.8. Debug System

4.9. Program Image and Start-up Sequence

Chapter 5. Instruction Set

5.1. What Is Instruction Set

5.2. Background of ARM® and Thumb® Instruction Set

5.3. Assembly Basics

5.4. Instruction List

5.5. Pseudo Instructions

Chapter 6. Instruction Usage Examples

6.1. Overview

6.2. Program Control

6.3. Data Accesses

6.4. Data Type Conversion

6.5. Data Processing

Chapter 7. Memory System

7.1. Memory Systems in Microcontrollers

7.2. Bus Systems in the Cortex®-M0 and Cortex-M0+ Processors

7.3. Memory Map

7.4. Program Memory, Boot Loader, and Memory Remapping

7.5. Data Memory

7.6. Little Endian and Big Endian Support

7.7. Data Type

7.8. Memory Attributes and Memory Access Permission

7.9. Effect of Hardware Behavior to Programming

Chapter 8. Exceptions and Interrupts

8.1. What are Exceptions and Interrupts?

8.2. Exception Types on the Cortex®-M0 and Cortex-M0+ Processors

8.3. Brief Overview of the NVIC

8.4. Definition of Exception Priority Levels

8.5. Vector Table

8.6. Exception Sequence Overview

8.7. EXC_RETURN

8.8. NVIC Control Registers for Interrupt Control

8.9. Exception Masking Register (PRIMASK)

8.10. Interrupt Inputs and Pending Behavior

8.11. Details of Exception Entry Sequence

8.12. Details of Exception Exit Sequence

8.13. Interrupt Latency

Chapter 9. System Control and Low-Power Features

9.1. Brief Introduction of System Control Registers

9.2. Registers in the SCBs

9.3. Using the Self-Reset Feature

9.4. Using the Vector Table Relocation Feature

9.5. Low-Power Features

Chapter 10. Operating System Support Features

10.1. Overview of OS Support Features

10.2. Introduction to Operating Systems in Embedded World

10.3. The SysTick Timer

10.4. Process Stack and PSP

10.5. SVCall Exception

10.6. PendSV

10.7. Advanced Topics: Using SVC and PendSV in Programming

10.8. Advanced Topics: Context Switching in Action

Chapter 11. Fault Handling

11.1. Fault Exception Overview

11.2. What Can Cause a Fault?

11.3. Analyze a Fault

11.4. Accidental Switching to ARM® State

11.5. Error Handling in Real Applications

11.6. Error Handling During Software Development

11.7. Lockup

11.8. Preventing Lockup

11.9. Comparison with Fault Handling in ARMv7-M Architecture

Chapter 12. Memory Protection Unit

12.1. What is MPU?

12.2. MPU Use Cases

12.3. Technical Introduction

12.4. MPU Registers

12.5. Setting Up the MPU

12.6. Memory Barrier and MPU Configuration

12.7. Using Sub-Region Disable

12.8. Considerations When Using MPU

12.9. Comparing with the MPU in the Cortex®-M3/M4/M7 Processors

Chapter 13. Debug Features

13.1. Software Development and Debug Features

13.2. Debug Interface

13.3. Debug Features Overview

13.4. Debug System

13.5. Halt Mode and Debug Events

13.6. Instruction Tracing Support Using the MTB

Chapter 14. Getting Started with the Keil Microcontroller Development Kit

Details

About the Author

Joseph Yiu

Joseph Yiu joined ARM in 2001 and has been involved in a wide range of projects including development of ARM Cortex-M processors and various on-chip system level and debug components. In addition to in-depth knowledge of the processors and microcontroller system design, Joseph also has extensive knowledge in related areas including software development for the ARM Cortex-M microcontrollers, FPGA development and System-on-Chip design technologies.

Affiliations and Expertise

Senior Embedded Technology Specialist, ARM Ltd., Cambridge, UK

Reviews

"...if you’re new to these components,...buy the book. It will give you the insight you need to be productive on real projects." --Embedded

Ratings and Reviews

Request Quote

Tax Exemption

We cannot process tax exempt orders online. If you wish to place a tax exempt order
please contact us.