arm el2与el3_ARMV8 datasheet学习笔记4:AArch64系统级体系结构之编程模型(1)-EL/ET/ST...

本文介绍了ARMv8系统级编程模型,包括异常级别(EL0-EL3)的概念、运行状态、安全状态以及异常处理。EL0用于应用,EL1运行Linux内核,EL2作为hypervisor层,EL3则运行Secure Monitor。异常分为同步和异步,同步异常如SVC、HVC、SMC,异步异常如中断。执行状态包括AArch32和AArch64,Secure状态提供物理地址空间的安全隔离。
摘要由CSDN通过智能技术生成

1.前言

ARMV8系统级编程模型主要包括异常级别、运行状态、安全状态、同步异常、异步异常、DEBUG

本文主要对系统级编程模型做一个概要介绍

2. 异常级别

2.1 Exception level概述

ELx(x<4),x越大等级越高,执行特权越高

执行在EL0称为非特权执行

EL2 没有Secure state,只有Non-secure state

EL3 只有Secure state,支持EL0/EL1的Secure 和Non-secure之间的切换

EL0 & EL1 必须要实现,EL2/EL3则是可选实现

当接收到一个异常时,异常级别只能调高或保持;

当从异常返回时,异常级别只能调低或保持

在接收到异常将要切换或保持的异常级别称为目标异常级别

每个异常级别本身有一个默认固定的目标异常级别,还可以通过寄存器设置目标异常级别,目标异常级别不能为EL0

当PE运行在一个异常级别时,可以访问如下两种资源:

当前异常级别和安全状态组合下的资源;

低异常级别可访问的资源(要符合安全状态)

2.2  典型的Exception Level使用模型

异常级别

运行的软件

EL0

Application

EL1

Linux kernel- OS

EL2

Hypervisor (可以理解为上面跑多个虚拟OS)

EL3

Secure Monitor(ARM Trusted Firmware)

2.3 异常相关术语

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值