Introduction

備忘録。
タイトルのまま。
aarch64 だの armv7 だの、種類が多いので整理。

Resolution

色々情報源はあるが…
下記がわかりやすかった。

一部追記している (aarch64がない)。

Abbreviation

aarch64 や armhf とかは Linux のディストリビューションから見た種別

uname dpkg classification gcc description
aarch64 arm64 aarch64-linux-gnu-gcc 64bit
armv8l arm64 64bit kernel on 32-bit mode
armv7l armhf hf は Hard Float の略 arm-linux-gnueabihf-gcc
armv6l armel ARM EABI
つまりARM eabi little-endian
arm-linux-gnueabi-gcc legacy
arm ARM Legacy ABI
または OABI (Old ABI)
arm-linux-gcc too legacy
  • 末尾の llittle-endian
  • ARM は big-endian もサポートしている。
  • Hard Float は チップ上で浮動小数点演算。つまり FPU (Floating Point Unit) を使用
    • Soft Float は浮動小数点をソフトウェアでエミューレート
      • 当然 Hard Float のが高速

ABI

Application Binary Interface

type full name description
OABI Old Application Binary Interface
EABI Embedded Application Binary Interface legacy

Architecture

armv-v7a とか。

profile target
v7-A アプリケーション プロセッサ。Application
v7-R 組み込みプロセッサ。Real-time
v7-M コントローラ プロセッサ。Microcontroller

Family

Cortex とか。

family name manifacture
ARM Arm
Cortex Arm
Snapdragon Qualcomm
Apple Ax Apple
Apple M1 Apple
Tegra K1 NVIDIA
ARMADA Marvell
Tegra K1 MediaTek

これでもう迷わない。