Skip to content

2023#

ARM64 System calls

Software interrupts, or SVCs as they are now known, are generated by using the ARM instruction SVC. This causes an exception to be taken, and forces the processor into Supervisor mode, which is privileged. A user program can request services from an operating system through such exception handling mechanisms.1

ARM64 Execution States

The AArch64 processor provides two major modes of operation, referred to as execution states. They are 32-bit AArch32 state, and 64-bit AArch64 state.

ARM Program Counter

In the A32 and T32 instruction sets, the Program Counter(PC) and Stack Pointer(SP) are general purpose registers. This is not the case in A64 instruction set.

As a general-purpose register in ARMv7, the PC introduced compiler complications and complex pipeline design.

Removing direct access to the PC in ARMv8 makes return prediction easier and simplifies the ABI specification.

Register file of ARM64

The ISA is a contract between the hardware and the software. It defines the set of instructions and the set of registers that the hardware must support.

The most important components of the CPU are the registers, where data is stored, and the arithmetic and logic unit (ALU), where arithmetic and logical operations are performed on the data.

Arm® processors provide general-purpose and special-purpose registers. Some additional registers are available in privileged execution modes.

Registers which can be used freely are referred to as volatile, and registers which must be preserved or restored before returning are referred to as non-volatile.

Arm GNU Toolchain

How to compile/generate AArch32 code and run on an Linux/AArch64?

How to build AArch64-ELF for a popular embedded target board under Windows/x86_64 or macOS/arm64?

ARM Programmer's Guide

  1. ARM Cortex-A Series Programmer's Guide for ARMv8-A
  2. Arm Assembly Language Reference Guide
  3. ARM Compiler armasm Reference/User Guide
  4. Arm Compiler for Embedded Reference/User Guide

ARM Architecture

ARM's original abbreviation was Acorn RISC Machine.

The cores and instruction sets used by ARM do not correspond one-to-one.

In November 1990, Acorn, Apple and VLSI jointly funded the creation of ARM. Acorn RISC Machine has also been officially renamed Advanced RISC Machine.

After ARM11, ARM processor cores no longer have the ARM prefix. But the word ARM has not disappeared from the Cortex series. The three major series of Cortex, M-R-A, together are ARM.