RH850 G3KH异常处理简述

目录

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.hqwc.cn/news/206850.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3D打印新突破:可一次性打印出带骨骼、肌腱、韧带的机械手

原创 | 文 BFT机器人 近日,来自瑞士苏黎世联邦理工学院 (ETH) 和美国初创公司Inkbit的研究团队采用最新的激光扫描技术,成功地实现了机械手的3D打印,其内部结构由类人骨骼、韧带和肌腱组成。这项新技术使一次性3D打印具有弹性的特种塑料成为…

羊大师教你如何有效解决工作中的挑战与压力?

在现代社会,工作问题一直是许多人头疼的难题。无论是从工作压力到职业发展,工作问题不仅会影响个人的心理健康,还可能对整个工作团队的效率和和谐产生负面影响。因此,如何有效解决工作问题成为了每个职场人士都需要面对的挑战。 …

那仰望的人

心底的孤独和叹息

LangChain库简介

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

算法设计与分析复习--分支界限法

文章目录 上一篇分支界限法性质装载问题0-1背包问题单源最短路问题最大团问题下一篇 上一篇 算法设计与分析复习–回溯法(二) 分支界限法性质 分支界限法是按广度优先策略或最小耗费优先遍历问题的解空间树。 搜索解空间: 子集树排列树 …

python-opencv划痕检测-续

python-opencv划痕检测-续 这次划痕检测,是上一次划痕检测的续集。 处理的图像如下: 这次划痕检测,我们经过如下几步: 第一步:读取灰度图像 第二步:进行均值滤波 第三步:进行图像差分 第四步&#xff1…

【蓝桥杯省赛真题45】Scratch九宫格游戏 蓝桥杯scratch图形化编程 中小学生蓝桥杯省赛真题讲解

目录 scratch九宫格游戏 一、题目要求 编程实现 二、案例分析 1、角色分析

BTS-GAN:基于MRI和条件对抗性网络的乳腺肿瘤计算机辅助分割系统

BTS-GAN: Computer-aided segmentation system for breast tumor using MRI and conditional adversarial networks BTS-GAN:基于MRI和条件对抗性网络的乳腺肿瘤计算机辅助分割系统背景贡献实验方法Parallel dilated convolution module(并行扩展卷积模块…

C++ DAY08 异常

概念 异常事件(如:除 0 溢出,数组下标越界,所要读取的文件不存在 , 空指针,内存不足 等等) 在 C 语言对错误的处理是两种方法: 一是使用整型的返回值标识错误; 二是使用 errn…

Windows权限维持方法论

Windows权限维持方法论 1.注册表自启动2.组策略设置脚本启动3.计划任务4.服务自启动5.dll劫持6.直接上远程控制木马 1.注册表自启动 通过修改注册表自启动键值,添加一个木马程序路径,实现开机自启动 常用的注册表启动键: # Run键 HKEY_CU…

写单元测试,没你想得那么简单!

前言 单元测试是什么我们就简单介绍一下: 单元测试是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作。程序单元是应用的最小可测试部件。 接下来是本人对单元测试的理解和实践。里面没有废话,希望每句话能说到你心…

2020年计网408

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