RH850 G3KH异常处理简述

news2025/1/19 23:01:21

目录

1.概述

2.异常处理后现场恢复 

3.异常处理地址识别

 4.小结


1.概述

我们首先来看,G3KH的关键寄存器,PSW

  • PSW--Program status word

PSW寄存器里有表征程序状态的flag,CPU操作状态的flag。如下

UM---是否是user mode;0--SV 1--UM

EBV---该位表示重置向量(RBASE)和异常向量(EBASE)操作

ID ---该位用于使能EI等级的异常。当检测到EI/FE等级异常时,该位设置为1用于关闭EI等级异常的监测。使用汇编指令EI使能,DI失能。

NP---用于使能FE等级的异常。

与异常中断相关的系统寄存器:

RBASE:发生reset后的reset 向量地址;如果EBV=0,该地址同样作为异常向量地址

EBASE:异常程序处理地址;当EBV=1时,该寄存器有效。

  • INTBP--Base Address Register of the interrupt handler address table

当选择表引用方法作为中断处理程序地址选择方法时,该寄存器指示表的基地址。

在G3KH中,异常分为三类

  • FE级别不可屏蔽中断(FENMI)
  • FE级别可屏蔽中断(FEINT)
    • EI级别可屏蔽中断(EIINT)

异常原因部分列表如下:

         获取到异常时,处理流程如下:

首先检查PSW.NP位,如果有FE等级的异常出现,该位为1;

然后检擦PSW.ID位,判断该位是否位1;

这里就有一个疑问:检查NP位时,如果该位为0,是否就叫做不满足?、从这个时序图可以看到应该不是这样,应该是根据异常列表中异常对应NP来判定条件是否满足,例如下图的user interrupt。如果此时NP为0,那么根据该表红框标出的数据,user interrupt对应的NP mask应该为0,所以满足上述条件;ID位参上。

2.异常处理后现场恢复 

         根据异常的类型不同,调用指令FERET或者EIRET来返回;将对应的xxPC/xxPSW赋值给PC和PSW。

3.异常处理地址识别

Reset、异常/中断确认期间,用于执行的异常处理程序地址可以根据需要进行设置更改。

Reset和异常的处理地址使用直接向量法来获取,根据PSW.EBV、EBASE和RBASE寄存器。

中断,每个channel可以选择使用直接向量法和表参考法。

  1. 直接向量法(Direct vector method)

需要注意的是,reset和一些指定异常必须使用RBASE中的地址。

根据PSW.EBV来确定基地址;EBV=1,使用EBASE;EBV=0,使用RBASE;如下图

         下表为异常基地址和偏移

         

2.表参考法(Table reference method)

在直接向量法中,每个中断优先级都有一个用户中断异常处理程序,中断通道则指的是具有相同优先级的多个中断切到同一中断处理程序,但有些用户可能希望使用与每个中断处理程序的开始时间不同的代码区域。

当使用表引用方法时,如果表引用方法被指定为中断控制器的中断通道向量选择方法,则当确认对应于该中断通道的中断请求时,确定异常处理程序地址的方法不同之处如下。

  1. 如下情形使用直接向量法
    1. PSW.EBV = 0(1)且RBASE(EBASE).RINT =1
    2. 对应中断通道没有设置表参考法

除了上述情况,使用表参考法,对应异常处理地址为 INTBP+channel*4bytes。

 4.小结

        从上面,我们简单了解了G3KH是如何处理中断和异常的。从使用者角度还是比较简单易用,相较于英飞凌来说,更容易理解。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1238996.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java Spring

文章目录 SpringSpring 是什么?从Spring中获取Beanxml获取注解存储类注解⽅法注解bean命名规则类注解之间的关系 注解获取bean属性注⼊缺点 构造⽅法注⼊Setter 注⼊三种注⼊优缺点分析Resource:另⼀种注⼊关键字同⼀类型多个 Bean 报错处理 获取bean对象…

谈一谈什么是接口测试?怎样做接口测试?

扫盲内容: 1.什么是接口? 2.接口都有哪些类型? 3.接口的本质是什么? 4.什么是接口测试? 5.问什么要做接口测试? 6.怎样做接口测试? 7.接口测测试点是什么? 8.接口测试都要掌…

​极氪,中国传统汽车品牌电动化的样板间

这篇文章早就想写了,因为太忙的原因就一直跳票,正好最近两件事的出现,又触发了想写这篇文章的冲动。 两件事主要是: 一,10 月份各家陆续公布了单月销量以及累计销量; 二,极氪在北京正式发布了 …

CTF靶场搭建及Web赛题制作与终端docker环境部署

♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ ♡ ♥ 写在前面 ╔═══════════════════════════════════════════════════…

OSG文字-渐变文字(4)

渐变文字(osgText::FadeText类)继承自osgText::Text类继承关系图如图9-6所示 图9-6 osgText::FadeText的继承关系图 从继承关系图中可以看出,它继承自osgText::Text类,因此,它具备一般文字属性的设置方法这里不再重复说明。创建渐变文字与一般…

Python通过selenium调用IE11浏览器报错解决方法

前提 正常安装Python 工具,selenium 包可以正常导入。IE浏览器驱动 IEDriverServer.exe 已经正确放置到已经添加path目录的文件下。 报错现象: 解决方法 打开浏览器进入 internet 选项 切换到安全页签 ,去除“应用保护模式” 再次调用验证…

进程API

linux下进程的api forkwaitexec fork #include <stdio.h> #include <stdlib.h> #include <unistd.h>/* linux环境运行 子进程并不是完全拷贝了父进程。具体来说&#xff0c;虽然它拥有自己的 地址空间&#xff08;即拥有自己的私有内存&#xff09;、寄存器…

2018-2022年富时罗素 ESG评分数据

2018-2022年富时罗素 ESG评分数据 1、时间&#xff1a;2018-2022年 2、指标&#xff1a;证券代码、证券简称、富时罗素ESG评分、 3、说明&#xff1a; 富时罗素ESG评级体系评估了中国大陆、香港、欧洲以及美国等市场上1800家中国上市企业股票&#xff0c;评估了7200多种证券…

LangChain库简介

❤️觉得内容不错的话&#xff0c;欢迎点赞收藏加关注&#x1f60a;&#x1f60a;&#x1f60a;&#xff0c;后续会继续输入更多优质内容❤️ &#x1f449;有问题欢迎大家加关注私戳或者评论&#xff08;包括但不限于NLP算法相关&#xff0c;linux学习相关&#xff0c;读研读博…

【10套模拟】【8、9】

关键字&#xff1a; 建立有序单链表、多维数组是特殊线性结构、直接选择排序、哈夫曼树高度及wpl、中序最后叶子先序最后也是、堆是完全二叉树、分块查找 统计二叉树结点数、统计二叉树值和、奇偶数划分、判断链表是否递增

docker报错standard init linux.go:228 exec user process caused: exec format error

1、报错 使用Dockerfile自己做的服务镜像&#xff0c;docker run时启动失败&#xff0c;报错如下&#xff1a; standard init linux.go:228 exec user process caused: exec format error2、原因一 当前服务器的CPU架构和构建镜像时的CPU架构不兼容。比如做镜像是在arm机器下…

2020年计网408

第33题 下图描述的协议要素是&#xff08; &#xff09;。I. 语法 II. 语义 III. 时序 A. 仅 I B. 仅 II C. 仅 III D. I、II 和 III 本题考察网络协议三要素的相关知识。 网络协议的三要素分别是语法、语义、同步&#xff08;时序&#xff09;。语法&#xff1a;定义收发双…

IPFoxy:什么是数据中心代理IP?好用吗?

数据中心代理是代理IP中最常见的类型&#xff0c;也被称为机房IP。这些代理服务器为用户分配不属于 ISP&#xff08;互联网服务提供商&#xff09;而来自第三方云服务提供商的 IP 地址。数据中心代理的最大优势——它们允许在访问网络时完全匿名。 如果你正在寻找海外代理IP&am…

力扣:175. 组合两个表(Python3)

题目&#xff1a; 表: Person ---------------------- | 列名 | 类型 | ---------------------- | PersonId | int | | FirstName | varchar | | LastName | varchar | ---------------------- personId 是该表的主键&#xff08;具有唯一值的列&#…

Raspberry Pi 5 新一代单板计算机:树莓派5代 (介绍、入门、解疑)

树莓派5代正式发布后&#xff0c;硬件和性能的全面升级让众多开发者们都想入手感受一波&#xff0c;外观上Raspberry Pi 5 与前代产品非常相似&#xff0c;不过&#xff0c;在保留信用卡大小的整体尺寸的同时&#xff0c;也更新了一些设计元素&#xff0c;以适应新芯片组的功能…

【c++】——类和对象(下) 万字解答疑惑

作者:chlorine 专栏:c专栏 目录 &#x1f6a9;再谈构造函数 &#x1f393;构造函数体赋值 &#x1f393;初始化列表 &#x1f6a9;explicit关键字 &#x1f6a9;static成员 &#x1f393;概念 面试题&#xff1a;计算创建多少个类对象 &#x1f393;特性 【问题】(非)…

机器学习实战第1天:鸢尾花分类任务

专栏介绍 欢迎订阅专栏——机器学习实战 机器学习实战_Nowl的博客-CSDN博客 纸上得来终觉浅 本专栏项目将着重于解决各类实际机器学习问题&#xff0c;带你上手各种场景的实际问题 数据集可以在我的资源中找到&#xff0c;也可以自行搜索 文中导入数据集的路径要改成自己的…

大图书馆 #9 《流计算系统图解》书评

上周&#xff0c;我收到清华大学出版社编辑寄来的新书《流计算系统图解》。趁着周末的功夫&#xff0c;我快速浏览了本书的主要内容。一句话评价&#xff1a;值得一读&#xff0c;尤其是对开始开发流计算任务或系统一到两年&#xff0c;初步实现过一些功能或作业&#xff0c;但…

【LeetCode刷题】-- 29.两数相除

29.两数相除 思路&#xff1a; class Solution {public int divide(int dividend, int divisor) {//考察被除数为最小值的情况if(dividend Integer.MIN_VALUE){//被除数为最小值&#xff0c;除数是1&#xff0c;返回最小值if(divisor 1){return Integer.MIN_VALUE;}//除数是-…

Java注解(Annotation)的基本知识

Java注解(Annotation)的基本知识 此文的目的只在于了解的注解的基本知识&#xff0c;知道注解的一些概念&#xff0c;使能够看懂注解的使用。 注解概述 Java 注解&#xff08;Annotation&#xff09;又称 Java 标注&#xff0c;使 JDK5.0 引入的一种注释机制。Java 语言中的…