怎么建立一个网站链接,百度排名软件,seo完整教程视频教程,wordpress什么读目录
1.概述
2.异常处理后现场恢复
3.异常处理地址识别 4.小结 1.概述
我们首先来看#xff0c;G3KH的关键寄存器#xff0c;PSW
PSW--Program status word
PSW寄存器里有表征程序状态的flag#xff0c;CPU操作状态的flag。如下 UM---是否是user mode#xff1b;0--…目录
1.概述
2.异常处理后现场恢复
3.异常处理地址识别 4.小结 1.概述
我们首先来看G3KH的关键寄存器PSW
PSW--Program status word
PSW寄存器里有表征程序状态的flagCPU操作状态的flag。如下 UM---是否是user mode0--SV 1--UM
EBV---该位表示重置向量(RBASE)和异常向量(EBASE)操作
ID ---该位用于使能EI等级的异常。当检测到EI/FE等级异常时该位设置为1用于关闭EI等级异常的监测。使用汇编指令EI使能DI失能。
NP---用于使能FE等级的异常。
与异常中断相关的系统寄存器
RBASE发生reset后的reset 向量地址如果EBV0,该地址同样作为异常向量地址
EBASE异常程序处理地址当EBV1时该寄存器有效。
INTBP--Base Address Register of the interrupt handler address table
当选择表引用方法作为中断处理程序地址选择方法时该寄存器指示表的基地址。 在G3KH中异常分为三类 FE级别不可屏蔽中断FENMIFE级别可屏蔽中断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可以选择使用直接向量法和表参考法。
直接向量法Direct vector method
需要注意的是reset和一些指定异常必须使用RBASE中的地址。
根据PSW.EBV来确定基地址EBV1使用EBASEEBV0使用RBASE如下图 下表为异常基地址和偏移 2.表参考法Table reference method
在直接向量法中每个中断优先级都有一个用户中断异常处理程序中断通道则指的是具有相同优先级的多个中断切到同一中断处理程序但有些用户可能希望使用与每个中断处理程序的开始时间不同的代码区域。
当使用表引用方法时如果表引用方法被指定为中断控制器的中断通道向量选择方法则当确认对应于该中断通道的中断请求时确定异常处理程序地址的方法不同之处如下。
如下情形使用直接向量法 PSW.EBV 0(1)且RBASE(EBASE).RINT 1对应中断通道没有设置表参考法
除了上述情况使用表参考法对应异常处理地址为 INTBPchannel*4bytes。 4.小结 从上面我们简单了解了G3KH是如何处理中断和异常的。从使用者角度还是比较简单易用相较于英飞凌来说更容易理解。