00-armv8/armv9中断系列详解-序言

2024-04-07 21:04

本文主要是介绍00-armv8/armv9中断系列详解-序言,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

快速链接:

  • 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈
1、序言

带着问题去学习,关于异常/中断的一些思考:

  • (1)、在如下的一个大系统种,cpu正在optee os中运行,突然来了一个想给Linux Kernel处理的中断(如一个蓝牙中断),那么此时的软硬件流程是怎样的?
    在这里插入图片描述
  • (2)、在上述的大系统中,你的Linux Kernel、optee os、hypervisor、ATF系统中都有异常向量表,那么当一个中断到来时,是跳转到哪个系统中的向量表呢
  • (3)、什么是中断嵌套? 怎样可以支持中断嵌套? 什么是中断抢占?什么是中断优先级?什么是运行中断优先级?
  • (4)、什么是FIQ? FIQ和IRQ的关系是什么?
  • (5)、当来了一个中断,是如何跳转到向量表的? 中间经过了怎样的路由?
  • (6)、当你调用了svc/hvc/smc指令后,cpu是如何跳转到你期望的目标地址的?
  • (7)、同步异常有哪些,异步异常有哪些,哪些优先级是一样的,哪些优先级是不一样的?
  • (8)、异常向量表存放在哪里?为什么会有人说放在0x00000000处?
  • (9)、什么是interrupt is asserted ?什么是interrupt is taken ?什么是PE Acknowledge this interrupt ?target 、routing又是什么意思? target from和target to呢?

做为一名底层安全工程师、一名一线支持客户的FAE,工作的内容涉及到TF-A、TEE、Linux Kernel、hypervisor、SPM等众多模块,cpu(或PE或core或PC)也会在这众多模块之间跳来跳去,由于这些代码大多数都是开源的,都是别人写好的,其实很多时候,也无需去看其底层的设计原理。但做为一名FAE,会遇到客户的灵魂一问,为了给客户一个专业的感觉,不得不去弄懂底层深层次的原理. 另外,有些时候遇到了性能相关问题,不懂底层的设计原理,也许就无法分析这类问题。

本人不是什么专家,也不是什么的大佬,也就是看了一些arm文档,加上自己的理解,然后总结出如下文章,当然我在总结的时候,一切都以官方资料为准,尽量不瞎说不乱说。。

最后,希望这系列文章,能够对大家有所帮助。好好学习、天天向上,卷起来同志们。

说明:

  • 本系列所讲述的,都是以armv8-aarch64/armv9架构位基基础,Linux Kernel 5.10、optee3.16、TF-A 2.5
  • 大多数内容来自arm官方文档、很小很小部靠猜测,再加上部分自己的理解…
2、学习目标

在这里插入图片描述

  • 理解整个中断的数据流,从peripheral到gic到core再到操作系统软件
  • 了解中断的产生、中断的标记、中断的路由、中断的Master,以及操作系统对中断的处理
  • 了解从peripheral产生中断后,有哪些是硬件自动的行为,有哪些是架构推荐定义的软件流程,以及各类操作系统软件中的处理流程
  • 本系列文章主要讲述图中的34 ,主要包含以下文章:
    01-armv8/armv9中断系列详解-序言
    02-armv8/armv9中断系列详解-硬件基础篇
    03-armv8/armv9中断系列详解-中断示例展示(不含虚拟化部分)
    04-armv8/armv9中断系列详解-中断示例展示(虚拟化部分)
    05-armv8/armv9中断系列详解-optee运行时来了一个REE(linux)中断–代码导读
    06-armv8/armv9中断系列详解-软件篇-Linux kernel中断相关软件导读

关注"Arm精选"公众号,备注进ARM交流讨论区。

1138106487-65f6cf311889c.png

这篇关于00-armv8/armv9中断系列详解-序言的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/883662

相关文章

spring中的ImportSelector接口示例详解

《spring中的ImportSelector接口示例详解》Spring的ImportSelector接口用于动态选择配置类,实现条件化和模块化配置,关键方法selectImports根据注解信息返回... 目录一、核心作用二、关键方法三、扩展功能四、使用示例五、工作原理六、应用场景七、自定义实现Impor

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基

一文详解MySQL如何设置自动备份任务

《一文详解MySQL如何设置自动备份任务》设置自动备份任务可以确保你的数据库定期备份,防止数据丢失,下面我们就来详细介绍一下如何使用Bash脚本和Cron任务在Linux系统上设置MySQL数据库的自... 目录1. 编写备份脚本1.1 创建并编辑备份脚本1.2 给予脚本执行权限2. 设置 Cron 任务2

一文详解如何在idea中快速搭建一个Spring Boot项目

《一文详解如何在idea中快速搭建一个SpringBoot项目》IntelliJIDEA作为Java开发者的‌首选IDE‌,深度集成SpringBoot支持,可一键生成项目骨架、智能配置依赖,这篇文... 目录前言1、创建项目名称2、勾选需要的依赖3、在setting中检查maven4、编写数据源5、开启热

Python常用命令提示符使用方法详解

《Python常用命令提示符使用方法详解》在学习python的过程中,我们需要用到命令提示符(CMD)进行环境的配置,:本文主要介绍Python常用命令提示符使用方法的相关资料,文中通过代码介绍的... 目录一、python环境基础命令【Windows】1、检查Python是否安装2、 查看Python的安

HTML5 搜索框Search Box详解

《HTML5搜索框SearchBox详解》HTML5的搜索框是一个强大的工具,能够有效提升用户体验,通过结合自动补全功能和适当的样式,可以创建出既美观又实用的搜索界面,这篇文章给大家介绍HTML5... html5 搜索框(Search Box)详解搜索框是一个用于输入查询内容的控件,通常用于网站或应用程

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

LiteFlow轻量级工作流引擎使用示例详解

《LiteFlow轻量级工作流引擎使用示例详解》:本文主要介绍LiteFlow是一个灵活、简洁且轻量的工作流引擎,适合用于中小型项目和微服务架构中的流程编排,本文给大家介绍LiteFlow轻量级工... 目录1. LiteFlow 主要特点2. 工作流定义方式3. LiteFlow 流程示例4. LiteF

CSS3中的字体及相关属性详解

《CSS3中的字体及相关属性详解》:本文主要介绍了CSS3中的字体及相关属性,详细内容请阅读本文,希望能对你有所帮助... 字体网页字体的三个来源:用户机器上安装的字体,放心使用。保存在第三方网站上的字体,例如Typekit和Google,可以link标签链接到你的页面上。保存在你自己Web服务器上的字