6678硬件支持NMI异常、EXCEP异常、内部异常、SWE异常、SWENR异常,那么他们之间是否都能彼此嵌套呢,据我所知,因为异常处理时,TSR.XEN
位会被拉低,所以是不能相应EXCEP异常的,那么EXCEP异常是不能和其他异常嵌套的。那SWENR异常可以吗,它是个不可返回异常,SWE/SWENR异常是用户自己触发的吗,如果不执行指令的话是不是这两个异常就不会触发呢,我想知道执行SWE/SWENR指令的目的是什么?麻烦路过的大神帮忙看看
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
6678硬件支持NMI异常、EXCEP异常、内部异常、SWE异常、SWENR异常,那么他们之间是否都能彼此嵌套呢,据我所知,因为异常处理时,TSR.XEN
位会被拉低,所以是不能相应EXCEP异常的,那么EXCEP异常是不能和其他异常嵌套的。那SWENR异常可以吗,它是个不可返回异常,SWE/SWENR异常是用户自己触发的吗,如果不执行指令的话是不是这两个异常就不会触发呢,我想知道执行SWE/SWENR指令的目的是什么?麻烦路过的大神帮忙看看
那么他们之间是否都能彼此嵌套呢
是可以嵌套的,请看下面的7.3.4 Nested Exceptions
https://www.ti.com/lit/ug/sprugh7/sprugh7.pdf
SWE/SWENR异常是用户自己触发的吗
执行这两条指令会产生异常。
我想知道执行SWE/SWENR指令的目的是什么?
产生软件异常,这两条指令的详细解释,请参考上面的文档7.5.3 Software Exception
SWENR异常可以和其他异常嵌套吗
SWENR异常优先级低于其他异常,不能嵌套。在user guide里有说明。
If another exception (internal or external) is recognized simultaneously with the
SWENR-raised exception then the other exception(s) takes priority and normal
exception behavior occurs;
如果我们不手动弄执行这条指令的情况下是不是就可以避免发生SWENR异常呢
是的,SWENR是执行指令后才会发生。
我还想问EXCEP异常是不是和我判断的一样也不能和其他异常嵌套呢
是的,您的判断是正确的,进入异常中断服务子程序后,TSR.XEN会被硬件自动清0,这时候是不允许EXCEP异常的。
EXCEP和SWENR异常之间谁的优先级比较高呢
EXCEP要高。