In this tutorial, I’ll be programming on “orca”, a Raspberry Pi (RPI) 3 running 64-bit Debian Linux. The company designs processor cores and license their technology as Intellectual Property (IP) to other semiconductor companies like ATMEL, NXP, and Samsung. is a fabless semiconductor company, which means they do not manufacture hardware. The popularity of ARM is due in part to the reduced cost of production and power-efficiency. The CPU can be found in medical devices, cars, aeroplanes, can be found in billions of devices. It is not just consumer electronics that use ARM. Table of contentsĪRM is a family of Reduced Instruction Set Computer (RISC) architectures for computer processors that has become the predominant CPU for smartphones, tablets, and most of the IoT devices being sold today. Everything I discuss with exception to the source code and GNU topics can be found in the manual.
Please refer to the ARM Architecture Reference Manual ARMv8, for ARMv8-A architecture profile for more comprehensive information about the ARMv8-A architecture. If you just want the code shown in this post, look here.
It will be updated periodically as I learn more, and if you have suggestions on how to improve the content, or you believe something needs correcting, feel free to email me. This post is an introduction to ARM64 assembly and will not cover any advanced topics. Developers of Linux distros have also decided to drop support for all 32-bit architectures, including ARM. It’s clear that ARM intends to phase out support for 32-bit code with its A series. Privileged code (kernel, drivers, hyper-visor) will only run in 64-bit mode. The A76 will continue to support A32 and T32 instruction sets, but only for unprivileged code. Moreover, the Automotive Enhanced (AE) version of the A76 unveiled in the same month will target applications like self-driving cars. Second, a company called Ampere started shipping a 64-bit ARM CPU for servers in September 2018 that’s intended to compete with Intel’s XEON CPU. First, Apple announced in April 2018 its intention to replace Intel with ARM for their Macbook CPU from 2020 onwards. ARM already has a monopoly on handheld devices, and are now projected to take a share of the laptop and server market.
The Cortex-A76 codenamed “Enyo” will be the first of three CPU cores from ARM designed to target the laptop market between 2018-2020.