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.mzph.cn/news/159833.shtml

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

相关文章

【JavaEE】Spring更简单的存储和获取对象(类注解、方法注解、属性注入、Setter注入、构造方法注入)

一、存储Bean对象 在这篇文章中我介绍了Spring最简单的创建和使用:Spring的创建和使用 其中存储Bean对象是这样的: 1.1 配置扫描路径 想要成功把对象存到Spring中,我们需要配置对象的扫描包路径 这样的话,就只有被配置了的包…

DDD神药:去哪儿结合DDD,实现架构大调优

尼恩说在前面 在40岁老架构师 尼恩的读者交流群(50)中,最近有小伙伴拿到了一线互联网企业如阿里、滴滴、极兔、有赞、希音、百度、网易、美团的面试资格,遇到很多很重要的面试题: 谈谈你的DDD落地经验? 谈谈你对DDD的理解&#x…

那仰望的人

心底的孤独和叹息

LangChain库简介

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

维护工程师面经

文章目录 前言技能要求数据结构定义分类常用的数据结构 数据库原理数据的三级模式结构事务查询方式视图数据库范式 Java相关知识点总结 前言 本博客仅做学习笔记,如有侵权,联系后即刻更改 科普: 参考网址 技能要求 数据结构 参考网址 定…

毕业设计2349基于jsp的网上订餐系统【程序源码+文档+调试运行】

摘要 本文介绍了一个网上订餐系统的设计与实现。该系统分为前台用户模块和后台管理员模块,具有用户注册/登录、网站公告、菜品中心、购物车、用户后台、留言板等功能。管理员可以对用户信息、网站公告、菜品类别、菜品信息、订单信息、菜品评价信息、留言板信息和支…

Mac | Vmware Fusion | 分辨率自动还原问题解决

1. 问题 Mac的Vmware Fusion在使用Windows10虚拟机时,默认显示器配置如下: 开机进入系统并变更默认分辨率后,只要被 ⌘Tab 切换分辨率就会还原到默认,非常影响体验。 2. 解决方式 调整 设置 -> 显示器 -> 虚拟机分辨率…

Centos7安装Cesi(Supervisor集中管理工具)

Background CeSi 是 Supervisor 官方推荐的集中化管理 Supervisor 实例的 Web UI,该工具是用 Python 编写,基于 Flask Web 框架 。Superviosr 自带的 Web UI 不支持跨机器管理Supervisor 进程,功能比较简单,通过 CeSi 可以集中管理…

STM32F103C8T6第5天:独立看门狗、窗口看门狗、dma实验

1. 独立看门狗IWDG介绍(341.45) 什么是看门狗? 在由单片机构成的微型计算机系统中,由于单片机的工作常常会受到来自外界电磁场的干扰,造成程序的跑飞,而陷入死循环,程序的正常运行被打断&#…

ESP32 碰上内存分配问题

1、背景 看图片 _calloc_r ->_malloc_r ->heap_caps_malloc_default->heap_caps_malloc->multi_heap_malloc->multi_heap_malloc_impl->get_next_block /* Return the next sequential block in the heap.*/ static inline heap_block_t *get_next_block(co…

【10套模拟】【8、9】

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

MySQL慢查询

快捷查看指令 ctrlf 进行搜索会直接定位到需要的知识点和命令讲解(如有不正确的地方欢迎各位小伙伴在评论区提意见,博主会及时修改) MySQL慢查询 MySQL 慢查询是指查询语句执行速度过慢,影响系统整体性能和查询效率的情况。MySQL…

详解Python中哈希表的使用。站在开发者角度,与大家一起探究哈希的世界。

文章目录 1. 前言2. 哈希表2.1 哈希函数2.2 哈希算法2.3 常见哈希算法2.4 哈希冲突 3.总结关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游戏源码五、面…

Python安装入门

目录 1 从应用商店安装2 通过官方安装3 验证安装是否成功4 打印hello world总结 1 从应用商店安装 推荐使用微软的应用商店安装,打开开始菜单 在应用商店搜索python 选择最新的版本下载并安装即可 2 通过官方安装 也可以使用官网的安装包,输入如下网…

以太坊铭文聚合交易平台 Scorpio,铭文爆发的新推手?

在今年 3 月,Ordinals 凭空问世,定义了一套在比特币网络运行的序数协议,使得 Token 和 NFT 能在比特币网络上实现并稳定运行,拉来了比特币铭文市场的新序幕。而在此后,在包括 BRC20 等在内的一系列应用的出现&#xff…

智慧城市内涝积水监测仪功能,提升城市预防功能

内涝积水监测仪不仅改变了人们应对城市内涝的老办法,还让智慧城市往前迈了一大步。这个监测仪是怎么做到的呢?就是靠它精准的数据监测和预警,让城市管理有了更科学高效的解决妙招。它就像有了个聪明又负责任的助手,让城市管理更加…

FPGA设计时序约束九、others类约束之Group Path

目录 一、序言 二、Group Path 2.1 基本概念 2.2 设置界面 2.3 命令语法 2.4 命令示例 三、工程示例 四、参考文件 一、序言 在Vivado的时序约束窗口中,存在一类特殊的约束,划分在others目录下,可用于设置忽略或修改默认的时序路径分…

【EI会议征稿】2024年智慧城市与信息系统国际学术会议 (ICSCIS 2024)

2024年智慧城市与信息系统国际学术会议 (ICSCIS 2024) 2024 International Conference on Smart City and Information System 随着互联网技术的发展,城市化进程的深入,智慧城市的研究与发展越来越普遍,运用物联网、云计算、大数据等先进信…

【考研数学】数学一“背诵”手册(一)| 高数部分(2)

文章目录 引言一、高数级数空间解析几何球坐标变换公式零碎公式 写在最后 引言 高数一篇文章还是写不太下,再分一些到这里来吧 一、高数 级数 阿贝尔定理:若级数 ∑ a n x n \sum a_nx^n ∑an​xn 当 x x 0 xx_0 xx0​ 时收敛,则适合不…

QT搭建的Ros/librviz的GUI软件

1.前言 开发初期学习了下面博主的文章,也报了他在古月局的课,相当于感谢吧。 ROS Qt5 librviz人机交互界面开发一(配置QT环境)-CSDN博客​​​​​​​r 软件前期也是参考他的开源项目 GitHub - chengyangkj/Ros_Qt5_Gui_App …