ARM学习笔记
ARM系列芯片
- Cortex - A
特点:Cortex-A核是ARM架构中的应用处理器核。它通常用于高性能计算和通用操作系统的执行,如Android、Linux等。Cortex-A核具有多级流水线、超标量执行、乱序执行等高级特性,使其能够高效处理多线程和多任务。
应用场景:Cortex-A核广泛应用于智能手机、平板电脑、服务器、网络设备、物联网网关等需要高性能和通用计算的领域 - Cortex - R
特点:Cortex-R核是ARM架构中的嵌入式实时处理器核。它专注于实时性能和可预测性,适用于处理实时控制任务,如汽车电子、工业控制、嵌入式系统等。Cortex-R核具有低延迟、高吞吐量和硬实时性能。
应用场景:Cortex-R核广泛用于汽车电子控制器、工业自动化、无线通信基站、嵌入式控制系统等需要实时响应和可靠性的领域。 - Cortex - M
特点:Cortex-M核是ARM架构中的微控制器处理器核。它专注于低功耗、紧凑尺寸和实时控制,适用于小型嵌入式系统。Cortex-M核通常具有单一周期执行、中断处理能力和低功耗模式。
应用场景:Cortex-M核广泛应用于微控制器(MCU)、传感器节点、物联网设备、嵌入式传感器、医疗设备等需要低功耗和实时控制的领域。
异同点: - 性能差异:Cortex-A核具有最高的性能,适合处理复杂的计算任务。Cortex-R核次之,专注于实时性能。Cortex-M核性能最低,专注于低功耗。 - 架构特性:Cortex-A核通常具有高级特性,如乱序执行,用于通用计算。Cortex-R核和Cortex-M核注重实时性能和可预测性,通常采用顺序执行。 - 功耗特性:Cortex-A核通常功耗较高,适用于设备拥有足够电源和散热能力的场景。Cortex-R核和Cortex-M核注重功耗效率,适用于电池供电或低功耗要求的设备。 - 应用领域:Cortex-A核适用于高性能计算、通用操作系统和复杂应用。Cortex-R核适用于实时控制领域。Cortex-M核适用于小型嵌入式系统和低功耗设备。
Core-A 内核体系
- 指令集 -> 编译
- 寄存器
- ARM汇编
- cache
- mmo 片外内存
- 链接协议
ARM 内容大纲 www.arm.com
- ARM架构和处理器
- 工具、操作系统和开发板
- ARM寄存器、数据类型、模式和指令集
- ARM汇编语言
- SIMD和NEON
- ARM缓存(Caches)架构
- 内存管理单元
- 中断处理(Interrupt Handling)
- 异常处理(Exception Handling)
- 启动代码
- 多处理器结构
哈弗结构和普林顿结构
- 冯诺依曼结构
冯诺依曼结构也称为普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。其特点包括:
(1)一般用于PC处理器。
(2)指令与数据存储器合并在一起。
(3)指令与数据都通过相同的数据总线传输。 - 哈佛结构
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。其特点包括:
(1)一般用于嵌入式系统处理器(DSP)。
(2)指令与数据分开存储,可以并行读取,有较高数据的吞吐率。
(3)有4条总线,包括指令和数据的数据总线和地址总线。
工具
-
QEMU
QEMU是一套由法布里斯·贝拉(Fabrice Bellard)所编写的以GPL许可证分发源码的模拟处理器软件,在GNU/Linux平台上使用广泛。Bochs,PearPC等与其类似,但不具备其许多特性,比如高速度及跨平台的特性,通过KQEMU这个闭源的加速器,QEMU能模拟至接近真实电脑的速度。 -
BusyBox
BusyBox 是一个集成了三百多个最常用Linux命令和工具的软件。BusyBox 包含了一些简单的工具,例如ls、cat和echo等等,还包含了一些更大、更复杂的工具,例grep、find、mount以及telnet。有些人将 BusyBox 称为 Linux 工具里的瑞士军刀。简单的说BusyBox就好像是个大工具箱,它集成压缩了 Linux 的许多工具和命令,也包含了 Linux 系统的自带的shell。 -
Scratchbox
-
U-Boot
Das U-Boot 是一个主要用于嵌入式系统的引导加载程序,可以支持多种不同的计算机系统结构,包括PPC、ARM、AVR32、MIPS、x86、68k、Nios与MicroBlaze。这也是一套在GNU通用公共许可证之自由软件。下发布的Das U-Boot可以在x86计算机上建构,但这部x86计算机必须安装有可支持特定平台结构的交互发展GNU工具链,例如crosstool、Embedded Linux Development Kit (ELDK)或OSELAS.Toolchain。 -
UEFI and Tianocore
统一可扩展固件接口(英语:Unified Extensible Firmware Interface,缩写UEFI)是一种个人电脑系统规格,用来定义操作系统与系统固件之间的软件界面,作为BIOS的替代方案。可扩展固件接口负责加电自检(POST)、联系操作系统以及提供连接操作系统与硬件的接口。
ARM工具链
编译过程
1、编译&#x