Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163769
  • 博文数量: 60
  • 博客积分: 15
  • 博客等级: 民兵
  • 技术积分: 638
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-26 10:59
个人简介

喜欢coding,因为那是一件伟大的事情,是将无生命的IC赋予灵魂的过程,让我拥有了和上帝一样的成就感。(w1c2g3@163.com)

文章分类

全部博文(60)

文章存档

2017年(7)

2016年(41)

2015年(1)

2014年(4)

2013年(7)

我的朋友

分类: 嵌入式

2017-01-25 12:11:30

arm v8 基础

有四个exception level:
EL0 normal用户应用程序
EL1 操作系统内核
EL2 Hypervisor(vm)
EL3 底层固件,包括secure monitor


EL之间移动的规则:
移动到更高级的EL,比如从EL0/EL1,说明增加了软件的执行权限
异常不能导致进入更低的EL
EL0没有异常处理,异常必须在更高层的EL中处理
一个异常会导致程序流程上的改变,一个异常处理的执行在比EL0更高的exception level上,由定义的异常vector决定,异常包括:
  中断(IRQ/FIQ)
  内存系统异常
  未定义指令
  系统调用
  secure monitor或者hypervisor traps
异常处理结束,通过ERET返回到之前的EL
从一个异常处理中返回,能否处在相同的EL或者进入一个较低的EL,不能进入更高的EL
除了从EL3到Non-secure状态,伴随EL的改变,security状态会改变


AArch64和AArch32之间的切换:
32bit的OS,不能run 64bit的应用程序
两者EL相似,但有不同,处理器的执行状态会被EL所限制
64->32,要求有更高的EL,由ERET返回异常处理导致
32->64,要求EL从低到高,由指令执行或外部信号的异常导致
异常处理和异常返回在相同EL是,execution state不能改变
在aarch32环境下,arm-v8的处理方式和arm-v7相同,在aarch64的环境下,将使用exception handing model

arm-v8 寄存器

一般目的寄存器 X0-X30(W0-W30)


除EL0外,其他EL可以使用SP_ELn或者使用SP_EL0

Removing direct access to the PC in ARMv8 makes return prediction easier and simplifies the ABI specification.

aarch64没有协处理器,相应操作在其system registers中

aarch32呵aarch64的工作寄存器mapping:




CPSR:
 aarch32 CPSR:

 aarch64 CPSR:




阅读(2154) | 评论(0) | 转发(0) |
0

上一篇:timewheel

下一篇:ARMv8 與 Linux的新手筆記

给主人留下些什么吧!~~