ARM
ARM (Advanced RISC Machines), https://www.arm.com
Android手機的組合語言(汇编语言)部分原始碼,platform/external/boringssl - android Git repositories
Android手機使用的BoringSSL組合語言AES程式, https://boringssl.googlesource.com/boringssl/+/3e6526575ac2349a44a04a0bbc7acb917fab5a0b/crypto/aes/asm
Android cryptographic primitives, https://source.android.com/security/keystore/features.html#cryptographic_primitives
Executable and Linkable Format (ELF), https://en.wikipedia.org/wiki/Executable_and_Linkable_Format
Application Binary Interface (ABI, 應用二進制界面)
Application Binary Interface (ABI), https://developer.arm.com/architectures/system-architectures/software-standards/abi
ABI for the Arm 32-bit/64-bit Architecture, https://github.com/ARM-software/abi-aa/releases
armeabi-v7a: 32位元, Procedure Call Standard for the ARM Architecture, https://github.com/ARM-software/abi-aa/releases/download/2021Q1/aapcs32.pdf
arm64-v8a: 64位元, Procedure Call Standard for the ARM 64-bit Architecture (AArch64), https://github.com/ARM-software/abi-aa/releases/download/2021Q1/aapcs64.pdf
Procedure Call Standard for the Arm Architecture, https://developer.arm.com/documentation/ihi0042/j/
EABI (Embedded ABI)
Use the NDK with other build systems, https://developer.android.com/ndk/guides/other_build_systems
Android SYSCALLS, https://android.googlesource.com/platform/bionic/+/android-11.0.0_r1/libc/SYSCALLS.TXT
Using Strace, https://source.android.com/devices/tech/debug/strace
Textbook: ARM Assembly Language: Fundamentals and Techniques, Second Edition (開發圖書有限公司 銷售)
ARM assemblers and compilers
Android NDK (Native Development Kit 原生開發工具包), https://developer.android.com/ndk/ , https://developer.android.com/ndk/guides/?hl=zh-cn
LLVM Compiler Infrastructure, https://llvm.org
Android Clang/LLVM Toolchain, https://android.googlesource.com/toolchain/llvm_android/
Clang: a C language family frontend for LLVM, https://clang.llvm.org
ARM Assembly for Embedded Applications, http://www.cse.scu.edu/~dlewis/book3/
Code Composer Studio (CCS), Texas Instruments Incorporated
RealView Development Suite (RVDS), https://store.developer.arm.com/store/embedded-iot-software-tools/realview-development-suite-rvds
Arm Compiler, https://developer.arm.com/tools-and-software/embedded/arm-compiler
ARM® Compiler Software Development Guide, Version 6.7
Arm Development Studio, https://www.arm.com/products/development-tools/embedded-and-software/arm-development-studio
ARM assembler (組譯器), http://www.heyrick.co.uk/assembler/
MDK (Microcontroller Development Kit)
MDK5 Device List, https://www.keil.com/dd2/
MDK Version 5 - Online Manuals, http://www2.keil.com/mdk5/docs
MDK Version 5 - Example Projects, http://www2.keil.com/mdk5/examples
ARM Compiler v5.06 for µVision armasm User Guide, http://www.keil.com/support/man/docs/armasm/
ARM Compiler armasm User Guide, https://developer.arm.com/documentation/100069/0608
gcc for ARM
arm-linux-androideabi-4.9, https://android.googlesource.com/platform/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/
https://gcc.gnu.org/onlinedocs/gcc-3.4.1/gcc/ARM-Options.html
GNU assembler (GNU Binutils),https://www.gnu.org/software/binutils/
Using as The GNU Assembler (1994) arm-linux-gnu-as(1) - Linux man page as(1) 指令的使用
GNU Arm Embedded Toolchain, https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
GNU Toolchain for the Cortex-A Family, https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads
Linaro GNU and LLVM Toolchains, https://www.linaro.org/downloads/
List of ARM Cortex-M development tools, https://en.wikipedia.org/wiki/List_of_ARM_Cortex-M_development_tools
ARM/Thumb指令(instruction), http://www.keil.com/support/man/docs/armasm/armasm_dom1361289850039.htm
'Hello World!' in ARM assembly 'Hello World' in ARM64 Assembly
Online ARM To Hex Converter, http://armconverter.com, Online HEX To ARM Converter, http://armconverter.com/hextoarm/
OWASP Firmware Security Testing Methodology (FSTM), https://github.com/scriptingxss/owasp-fstm OWASP Embedded Application Security Best Practices
ARM
ARM Instruction Set Architecture (A64, A32, T32), https://developer.arm.com/architectures/instruction-sets
List of ARM microarchitectures, https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures
32-bit Thumb instructions, http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ihi0014q/Cjaifddd.html
ARM Cortex®-A75 Technical Reference Manual
ARM Cortex A75, https://developer.arm.com/products/processors/cortex-a/cortex-a75
ARM Cortex-A77, Third-Generation, High-Performance CPU Based on DynamIQ Technology
List of ARM microarchitectures, https://en.wikipedia.org/wiki/List_of_ARM_microarchitectures
ARMv4
ARMv5
ARMv6
ARMv7
ARMv7-A (Applications), ARMv7-R (Real-time), ARMv7-M (Microcontroller)
ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition
Instruction Set Assembly Guide for Armv7 and earlier Arm architectures Reference Guide
Cortex-M4, TI TM4C1233H6PM Data Sheet Cortex-M4 Instruction Set
ARMv8
ARMv8 Architecture Reference Manual (64位元指令)
Armv8-A Instruction Set Architecture, https://documentation-service.arm.com/static/600ef8134ccc190e5e6803ab
Introduction to the ARMv8-M architecture (32-bit architecture, microcontroller), https://developer.arm.com/documentation/100688/0200/An-introduction-to-the-ARMv8-M-architecture?lang=en
Comparison of ARMv8-A cores, https://en.wikipedia.org/wiki/Comparison_of_ARMv8-A_cores
ARM Cortex-A series processors, https://developer.arm.com/ip-products/processors/cortex-a
ARM Cortex A-Profile Architecture Specifications, https://developer.arm.com/architectures/cpu-architecture/a-profile/docs
ARM Cortex-M series processors, https://developer.arm.com/ip-products/processors/cortex-m
T32 (Thumb) Instruction Set, https://developer.arm.com/architectures/instruction-sets/base-isas/t32
ARMv9
ARMv9 Instruction Set Architecture, https://developer.arm.com/documentation/ddi0602/latest/
Understanding the ARMv8.x and ARMv9.x extensions, https://developer.arm.com/documentation/102378/latest
Nexus說明, https://support.google.com/nexus/?hl=zh-Hant
瞭解有關Android作業系統安全性的警告, http://g.co/ABH
Nexus 7 (Android 4.3 ~ Android 6.0.1), 規格: Qualcomm Snapdragon™ S4 Pro (1.5GHz) (ARMv7), 2GB RAM, 7.吋 1920x1200 HD 螢幕
Nexus 9 (Android 5.0.1 ~ Android 7.1.1), 規格: 64 位元 NVIDIA Tegra K1 (ARM64 v8-A), 2GB RAM, 8.9 吋 IPS LCD TFT QXGA (2048x1536)
Nexus 6 (Android 5.0 ~ Android 7.1.1), 規格: Qualcomm® Snapdragon™ 805 (4x Qualcomm® Krait™ 450 CPU) 2.7GHz 四核心處理器(ARMv7-A), 3GB RAM / 64GB ROM, 5.96 吋 AMOLED 1440 x 2560 pixels
Nexus 6P (Android 6.0.0 ~ Android 8.1.0), 規格: Qualcomm® Snapdragon™ 810 (4x ARM Cortex A57, 4x ARM Cortex A53) 2.0 GHz 64 位元八核心處理器(ARM64 v8-A), 3GB RAM / 32GB ROM, 5.7 吋 AMOLED 1440 x 2560 pixels。Nexus 6P 討論區: https://forum.xda-developers.com/nexus-6p/
Pixel手機說明, https://support.google.com/pixelphone/?hl=zh-Hant
Pixel XL (Android 7.1.0 ~ 10.0.0), 規格: Qualcomm® Snapdragon™ 821 64位元四核處理器 (ARM64 v8-A) (4x Qualcomm® Kryo™ 2.4 GHz CPU), 4 GB LPDDR4, 5.5吋螢幕 AMOLED 1440 x 2560 pixels, Length: 154.7 mm, Width: 75.7 mm。Pixel 討論區:https://forum.xda-developers.com/pixel-xl
Pixel 2 (Android 8.0.0 ~ 11.0.0), 規格: Qualcomm® Snapdragon™ 835 processor (ARM64 v8-A) (8x Qualcomm® Kryo™ 280 CPU), RAM: 4GB, Length: 145.7 mm, Width: 69.7 mm, 5吋螢幕。Pixel 2 討論區: https://forum.xda-developers.com/pixel-2/ 。Pixel 2 rooting on Android 10, https://www.androidinfotech.com/root-google-pixel-2-xl-android-10/
Pixel 3 XL (Android 9.0.0 ~ 12.0.0), 規格: Qualcomm® Snapdragon™ 845 (ARM64 v8-A) (8x Qualcomm® Kryo™ 385 CPU), 4GB LPDDR4x RAM, 6.3吋螢幕。Pixel 3 XL討論區:https://forum.xda-developers.com/pixel-3-xl 。Pixel 3 XL rooting on Android 10, https://forum.xda-developers.com/pixel-3-xl/how-to/guide-pixel-3-xl-android-10-0-q-t3964117
高通驍龍™ 845, https://www.qualcomm.cn/snapdragon/processors/845. Qualcomm Announces Snapdragon 845 Mobile Platform, 4x Kryo 385 Gold (A75 derivative) @ 2.8GHz, December 2017.
高通驍龍™ 855, https://www.qualcomm.cn/snapdragon/processors/855. Qualcomm Snapdragon 855 First Details (ARM Cortex A76 CPU)
Qualcomm® Kryo, https://en.wikipedia.org/wiki/Kryo
大學ARM相關課程
ECE471: Embedded Systems, University of Maine
EE 310/310L: Microprocessors and System Design - Introducing ARM, Sonoma State University
CSE 30: Computer Organization and Systems Programming, University of California, San Diego