Cortex-A510——内核及汇编

news/2024/12/22 20:05:08/

Cortex-A510——内核及汇编

小狼@http://blog.csdn.net/xiaolangyangyang


1、异常等级

2、异常等级切换

        同步异常:
                1、SVC/HVC/SMC;
                2、MMU引发的异常(内核态EL1发生,发生后不会进行异常等级切换);
                3、SP和PC对齐检查;
                4、未分配或者没有权限的指令。

        异步异常(ERET/ERETAA/ERETAB):
                1、SError: 通常是由硬件导致的,没办法修复;
                2、IRQ:如从EL0->EL1,如在EL1发生IRQ,不会切换异常等级;
                3、FIQ:如从EL0->EL1,如在EL1发生FIQ,不会切换异常等级。

3、异常进入

        硬件执行:
                1、把PSTATE寄存器保存到对应的目标等级的SPSR_ELx;
                2、把返回地址保存到目标异常等级的ELR_ELx;
                3、把PSTATE的D/A/I/F标志置1;
                4、同步异常将异常原因写入ESR_ELx;
                5、切换SP为SP_ELx或SP_EL0。
        软件执行:
                1、软件压栈。

4、异常退出

        硬件执行:
                1、从ELR_ELx中恢复PC指针;
                2、从SPSR_ELx中恢复PSTATE,其中SPSR.M[3:0]记录了返回哪个异常等级,SPSR.M[4]记录了返回哪个执行状态。
        软件执行:
                1、软件出栈;
                2、执行ERET指令退出异常。
        这里异常返回与函数返回不一样,函数返回使用ret指令,返回使用的LR是X30(LR)。

5、安全模式切换

        安全模式切换只能在EL3进行,步骤如下(EL1_S->EL1_NS)
                1、使用SMC指令,进入到EL3;
                2、改变SCR_EL3.NS的值,将NS位写1;
                3、然后从EL3返回(ERET)到EL1。

6、栈帧

7、异常向量

8、内核寄存器


013 - ARM64的异常处理(Exception)机制
ARM64基础12:ARM64的异常模式及异常向量表
ARMv8的异常等级(Exception Level)以及执行状态(AArch64/AArch32)
异常等级切换
ARM处理器的secure 和 Non-secure模式切换方法:SMC指令和SCR.NS

http://tee.hehezhou.cn/register/AArch64-regindex.html


http://www.ppmy.cn/news/1474084.html

相关文章

智能井盖采集装置 开启井下安全新篇章

在现代城市的脉络之下,错综复杂的管网系统如同城市的血管,默默支撑着日常生活的有序进行。而管网的监测设备大多都安装在井下,如何给设备供电一直是一个难题,选用市电供电需经过多方审批,选用电池供电需要更换电池包&a…

鸿蒙NEXT

鸿蒙NEXT:华为操作系统的新篇章 随着华为鸿蒙生态千帆启航仪式的圆满举行,标志着鸿蒙原生应用开发正式进入一个新的阶段。作为对技术保持敏感的程序员,我们有必要深入了解这一全新操作系统HarmonyOS NEXT的技术细节和未来发展方向。 首先引…

科普文:微服务之服务网格Service Mesh

一、ServiceMesh概念 背景 随着业务的发展,传统单体应用的问题越来越严重: 单体应用代码库庞大,不易于理解和修改持续部署困难,由于单体应用各组件间依赖性强,只要其中任何一个组件发生更改,将重新部署整…

深入理解外观模式(Facade Pattern)及其实际应用

引言 在软件开发中,复杂的系统往往由多个子系统组成,这些子系统之间的交互可能非常复杂。外观模式(Facade Pattern)通过为这些子系统提供一个统一的接口,简化了它们的交互。本篇文章将详细介绍外观模式的概念、应用场…

ArcGIS Pro SDK (七)编辑 11 撤销重做

ArcGIS Pro SDK (七)编辑 11 撤销&重做 文章目录 ArcGIS Pro SDK (七)编辑 11 撤销&重做1 撤消/重做最近的操作 环境:Visual Studio 2022 .NET6 ArcGIS Pro SDK 3.0 1 撤消/重做最近的操作 //撤销 if (MapV…

Simple_ReAct_Agent

参考自https://www.deeplearning.ai/short-courses/ai-agents-in-langgraph,以下为代码的实现。 Basic ReAct Agent(manual action) import openai import re import httpx import os from dotenv import load_dotenv, find_dotenvOPENAI_API_KEY os.getenv(OPEN…

【区块链+基础设施】蜀信链 | FISCO BCOS应用案例

蜀信链是在四川省经济和信息化厅指导下,在四川省区块链行业协会组织下,由全省区块链相关从业与应用机构 共同参与建设和运营的区域性区块链基础设施,通过多方协同,共同打造合作共赢的区块链产业生态。 蜀信链区块链服务生态秉承“…

武汉免费 【FPGA实战训练】 Vivado入门与设计师资课程

一.背景介绍 当今高度数字化和智能化的工业领域,对高效、灵活且可靠的技术解决方案的需求日益迫切。随着工业 4.0 时代的到来,工业生产过程正经历着前所未有的变革,从传统的机械化、自动化逐步迈向智能化和信息化。在这一背景下&…