首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

AArch64 是什么

同时也需要在 ARMv8 架构中引入新的 AArch64 执行状态。AArch64 不是一个单纯的 32 位 ARM 构架扩展,而是 ARMv8 内全新的构架,完全使用全新的 A64 指令集。...更重要的是, AArch64 作为一个分离出的执行状态,意味着一些未来的处理器可能不支持旧的 AArch32 执行状态。...虽然最初的 64 位 ARM 处理器将会完全向后兼容,但我们大胆且前瞻性地将 AArch64 作为在 ARMv8 处理器中唯一的执行状态。...这样回想起来, AArch64 作为在 Fedora ARM 项目中被支持的 ARM 构架是一个很自然的过程: armv5tel、armv7hl、aarch64。...新的架构被命名为:aarch64,这同 ARM 自己选择的主线命名方式保持一致,同时也考虑到了 ARM 架构名与 ARM 商标分开的期望。

3.2K60
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    深入理解Aarch64的内存管理

    地址空间 AArch64 中有几个独立的虚拟地址空间。...物理地址 除了多个虚拟地址空间,AArch64 还有多个物理地址空间(PAS): Non-secure PAS0 Secure PAS Realm PAS (Armv9-A only) Root PAS...下图展示了多个物理地址空间的映射关系: 地址大小 AArch64 是 64 位架构,但这并不意味着所有地址都是 64 位的。虚拟地址以 64 位格式存储。...下图显示了 AArch64 中虚拟地址空间的布局: 如左图所示,EL0/EL1的虚拟地址空间有两个区域:内核空间和用户空间。内核空间在顶部,用户空间在底部。内核空间和用户空间有各自单独的转换表。...AArch64 支持三种不同的粒度大小:4KB、16KB 和 64KB。 处理器支持的粒度是自定义的并由 ID_AA64MMFR0_EL1 保存。

    1.4K20

    AArch64 学习(二) 函数调用 (Function Call Convention)

    本系列的第一篇 中介绍了 AArch64 的基础指令、进程内存布局以及基础栈操作 等. 本文该系列的第二篇, 主要聊聊函数调用, 涉及到的就是 Function Call Convention....AArch64 提供给我们了一个 bl (branch with link) 指令, 用来执行指定的函数....AArch64 Call Convention 约定 把需要保存的寄存器值入栈, 避免被即将调用的函数修改 AArch64 中, X0-X7 8 个通用寄存器用来保存函数调用的前 8 个参数, 超过 8...add(long x, long y) { return x + y; } int main() { long z = add(1, 2); return 0; } 对应的 AArch64...main() { long z = test(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); return 0; } 我们先看一下函数调用的时候, 栈的分配, 下面是对应的 AArch64

    1.3K30

    AArch64 学习(一) 基础指令, 内存布局, 以及基础栈操作

    那我们见到的 AArch64 是什么呢?...其实它和 AArch32 被称为 “执行状态” (execution state), 那么我们可以说 ARMv8-A 同时支持 AArch32 和 AArch64 两种状态, 在 AArch64 状态下...这里要注意 ARMv7/ARMv8-A、AArch32/AArch64 以及 A32/A64 在概念上的的区别, 但很多时候, 描述的范围都挺笼统的, 有些也是可以互相指代的, 大家知道就好....这个系列也是本着这个初衷展开, 适合对 AArch64 不熟, 或者熟悉 x86/64 的汇编, 想了解 AArch64 的同学. 而且对 C/C++ 语法或者特性背后实现感兴趣的同学....我们总结一下, 其实也很简单, 记住下面几个就够了: 每个函数内的栈空间大小, 在编译期就已经确定 通过 sub sp, #size, 就是减小 sp 地址的方式分配栈内存, 分配 size 字节. ps: AArch64

    2.4K30

    ARM深入理解-5.2-通往内核的大门(异常向量表_AArch64)

    1 建立向量表 2 建立向量表的示例 3 使能中断 异常初始化的过程: 建立异常向量表 异常路由和屏蔽配置 1 建立向量表 AArch64中,reset不再是异常向量表的一部分,它有专用的配置输入管脚和寄存器...1.1 Reset向量 AArch64中,处理器的开始执行位置是跟处理器的实现有关的,由硬件输入管脚RVBARADDR控制,可以在RVBAR_EL3中读取该地址。...1.2 向量表 每个异常级别都有专门的异常向量表,分别存储在下面的寄存器中: VBAR_EL3 VBAR_EL2 VBAR_EL1 AArch64的向量表与AArch32的不同。...SP_ELx 0x280 IRQ/vIRQ 0x300 FIQ/vFIQ 0x380 Serror/vSError 0x400 Synchronous 异常前的EL比异常EL低,异常前系统模式为aarch64...的异常 .balign 0x80 lower_el_aarch64_irq: // IRQ中断处理程序 // 来自低EL且处于AArch64的异常 .

    2K10
    领券