Skip to main content
\(\newcommand{\doubler}[1]{2#1} \newcommand{\binary}{\mathtt} \newcommand{\hex}{\mathtt} \newcommand{\octal}{\mathtt} \newcommand{\prog}{\mathtt} \newcommand{\lt}{<} \newcommand{\gt}{>} \newcommand{\amp}{&} \)

Chapter8Central Processing Unit

In this chapter we move on to consider a programmer's view of the Central Processing Unit (CPU) and how it interacts with memory.

The Raspberry Pi uses a Broadcom System on a Chip (SoC) , which is based on an ARM CPU. The specific ARM CPU depends on the Raspberry Pi model as shown on Table 8.0.1. The programming interface for each of these ARM CPUs is essentially the same for all the discussions in this book.

Raspberry Pi Broadcom SoC ARM CPU Size, bits
Pi Zero
Pi 1 A+ BCM2835 ARM1176JZF-S 32
Pi 1 B+
Pi 2 B BCM2836 Cortex-A7 32
Pi 3 B BCM2837 Cortex-A53 32/64
Table8.0.1ARM CPUs used in different Raspberry Pi models.

The 64-bit ARM processor in the Raspberry Pi 3 B can be run in either AARCH32 (32-bit) or AARCH64 (64-bit) state. In this book we describe the view of the CPU when running the 32-bit version of the Raspbian operating system, which runs the processor in AARCH32 state.