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.
Introduction to ARM® Cortex®-M Processors
Abstract
Overview of the ARM® Cortex®-M3 and Cortex-M4 processors, and the whole Cortex-M processor family. Differences between processors and microcontrollers. Resources which are useful, and background about ARM and ARM processor products.
Keywords
ARM; Cortex-M; microcontroller; background; resources; technical advantages
Chapter Outline
1.1 What are the ARM® Cortex®-M processors?
1.1.1 The Cortex®-M3 and Cortex-M4 processors
1.1.2 The Cortex®-M processor family
1.1.3 Differences between a processor and a microcontroller
1.1.4 ARM® and the microcontroller vendors
1.1.5 Selecting Cortex®-M3 and Cortex-M4 microcontrollers
1.2 Advantages of the Cortex®-M processors
1.2.10 Versatile system features
1.2.11 Software portability and reusability
1.2.12 Choices (devices, tools, OS, etc.)
1.3 Applications of the ARM® Cortex®-M processors
1.4 Resources for using ARM® processors and ARM microcontrollers
1.4.1 What can you find on the ARM® website
1.4.2 Documentation from the microcontroller vendors
1.4.3 Documentation from tool vendors
1.5.2 ARM® processor evolution
1.1 What are the ARM® Cortex®-M processors?
1.1.1 The Cortex®-M3 and Cortex-M4 processors
The Cortex®-M3 and Cortex-M4 are processors designed by ARM®. The Cortex-M3 processor was the first of the Cortex generation of processors, released by ARM in 2005 (silicon products released in 2006). The Cortex-M4 processor was released in 2010 (released products also in 2010).
The Cortex-M3 and Cortex-M4 processors use a 32-bit architecture. Internal registers in the register bank, the data path, and the bus interfaces are all 32 bits wide. The Instruction Set Architecture (ISA) in the Cortex-M processors is called the Thumb® ISA and is based on Thumb-2 Technology which supports a mixture of 16-bit and 32-bit instructions.
The Cortex-M3 and Cortex-M4 processors have:
• Three-stage pipeline design
• Harvard bus architecture with unified memory space: instructions and data use the same address space
• 32-bit addressing, supporting 4GB of memory space
• On-chip bus interfaces based on ARM AMBA® (Advanced Microcontroller Bus Architecture) Technology, which allow pipelined bus operations for higher throughput
• An interrupt controller called NVIC (Nested Vectored Interrupt Controller) supporting up to 240 interrupt requests and from 8 to 256 interrupt priority levels (dependent on the actual device implementation)
• Support for various features for OS (Operating System) implementation such as a system tick timer, shadowed stack pointer
• Sleep mode support and various low power features
• Support for an optional MPU (Memory Protection Unit) to provide memory protection features like programmable memory, or access permission control
• Support for bit-data accesses in two specific memory regions using a feature called Bit Band
• The option of being used in single processor or multi-processor designs
The ISA used in Cortex-M3 and Cortex-M4 processors provides a wide range of instructions:
• General data processing, including hardware divide instructions
• Memory access instructions supporting 8-bit, 16-bit, 32-bit, and 64-bit data, as well as instructions for transferring multiple 32-bit data
• Instructions for bit field processing
• Multiply Accumulate (MAC) and saturate instructions
• Instructions for branches, conditional branches and function calls
• Instructions for system control, OS support, etc.
In addition, the Cortex-M4 processor also supports:
• Single Instruction Multiple Data (SIMD) operations
• Additional fast MAC and multiply instructions
• Saturating arithmetic instructions
• Optional floating point instructions (single precision)1
Both the Cortex-M3 and Cortex-M4 processors are widely used in modern microcontroller products, as well as other specialized silicon designs such as System on Chips (SoC) and Application Specific Standard Products (ASSP).
In general, the ARM Cortex-M processors are regarded as RISC (Reduced Instruction Set Computing) processors. Some might argue that certain characteristics of the Cortex-M3 and Cortex-M4 processors, such as the rich instruction set and mixed instruction sizes, are closer to CISC (Complex Instruction Set Computing) processors. But as processor technologies advance, the instruction sets of most RISC processors are also getting more complex, so much so that this traditional boundary between RISC and CISC processor definition can no longer be applied.
There are a lot of similarities between the Cortex-M3 and Cortex-M4 processors. Most of the instructions are available on both processors, and the processors have the same programmer’s model for NVIC, MPU, etc. However, there are some differences in their internal designs, which allow the Cortex-M4 processor to deliver higher performance in DSP applications, and to support floating point operations. As a result, some of the instructions available on both processors can be executed in fewer clock cycles on the Cortex-M4.
1.1.2 The Cortex®-M processor family
The Cortex®-M3 and Cortex-M4 processors are two of the products in the ARM® Cortex-M processor family. The whole Cortex-M processor family is shown in Figure 1.1.
FIGURE 1.1 The Cortex-M processor family
The Cortex-M3 and Cortex-M4 processors are based on ARMv7-M architecture. Both are high-performance processors that are designed for microcontrollers. Because the Cortex-M4 processor has SIMD, fast MAC, and saturate arithmetic instructions, it can also carry out some of the digital signal processing applications that traditionally have been carried out by a separate Digital Signal Processor (DSP).
The Cortex-M0, Cortex-M0+, and the Cortex-M1 processors are based on ARMv6-M, which has a smaller instruction set. Both Cortex-M0 and Cortex-M0+ are very small size in terms of gate count, with just about 12K gates2 in minimum configuration, and are ideal for low-cost microcontroller products. The Cortex-M0+ processor has the most state-of-the-art low power optimizations, and has more available optional features.
The Cortex-M1 processor is designed specifically for FPGA applications. It has Tightly Coupled Memory (TCM) features that can be implemented using memories inside the FPGA, and the design allows high clock frequency operations in advanced FPGA. For example, it can run at over 200 MHz in Altera Stratix III FPGA.
For general data processing and I/O control tasks, the Cortex-M0 and Cortex-M0+ processors have excellent energy efficiency due to the low gate count design. But for applications with complex data processing requirements, they may take more instructions and clock cycles. In this case, the Cortex-M3 or Cortex-M4 processor would be more suitable, because the additional instructions available in these processors allow the processing to be carried out with fewer instructions compared to ARMv6-M architecture. As a result, we need different processors for different applications.
It is worthwhile to note that the Cortex-M processors are not the only ARM processors to be used in generic microcontroller products. The venerable ARM7™ processor has been very successful in this market, with companies like NXP (formerly Philips Semiconductor), Texas Instruments, Atmel, OKI, and many other vendors delivering ARM-based microcontrollers using classic ARM processors like ARM7TDMI™. There are also wide ranges of microcontrollers designed with ARM9™ processors. The ARM7 processor is the most widely used 32-bit embedded processor in history, with over 2 billion processors produced each year in a huge variety of electronics products, from mobile phones to automotive systems.
1.1.3 Differences between a processor and a...
Erscheint lt. Verlag | 6.10.2013 |
---|---|
Sprache | englisch |
Themenwelt | Mathematik / Informatik ► Informatik ► Software Entwicklung |
Technik ► Elektrotechnik / Energietechnik | |
ISBN-10 | 0-12-407918-0 / 0124079180 |
ISBN-13 | 978-0-12-407918-2 / 9780124079182 |
Haben Sie eine Frage zum Produkt? |
Größe: 66,8 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
Größe: 19,3 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: EPUB (Electronic Publication)
EPUB ist ein offener Standard für eBooks und eignet sich besonders zur Darstellung von Belletristik und Sachbüchern. Der Fließtext wird dynamisch an die Display- und Schriftgröße angepasst. Auch für mobile Lesegeräte ist EPUB daher gut geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich