Part Number:TMS320C6678
6678硬件支持NMI异常、EXCEP异常、内部异常、SWE异常、SWENR异常,那么他们之间是否都能彼此嵌套呢,据我所知,因为异常处理时,TSR.XEN
位会被拉低,所以是不能相应EXCEP异常的,那么EXCEP异常是不能和其他异常嵌套的。那SWENR异常可以吗,它是个不可返回异常,SWE/SWENR异常是用户自己触发的吗,如果不执行指令的话是不是这两个异常就不会触发呢,我想知道执行SWE/SWENR指令的目的是什么?麻烦路过的大神帮忙看看
Shine:
yifan ? 说:那么他们之间是否都能彼此嵌套呢
是可以嵌套的,请看下面的7.3.4 Nested Exceptionshttps://www.ti.com/lit/ug/sprugh7/sprugh7.pdf
yifan ? 说:SWE/SWENR异常是用户自己触发的吗
执行这两条指令会产生异常。
yifan ? 说:我想知道执行SWE/SWENR指令的目的是什么?
产生软件异常,这两条指令的详细解释,请参考上面的文档7.5.3 Software Exception
,
yifan ?:
谢谢您的回复,这个文件我看过,但是我在用硬件实现这五种异常嵌套时发现EXCEP是难以和其他异常嵌套的,SWENR异常可以和其他异常嵌套吗,就是在发生其他异常后能发生SWENR异常并处理吗,他们之间存在优先级吗,而且SWENR异常是由指令触发的,如果我们不手动弄执行这条指令的情况下是不是就可以避免发生SWENR异常呢
,
Shine:
yifan ? 说:SWENR异常可以和其他异常嵌套吗
SWENR异常优先级低于其他异常,不能嵌套。在user guide里有说明。If another exception (internal or external) is recognized simultaneously with theSWENR-raised exception then the other exception(s) takes priority and normalexception behavior occurs;
yifan ? 说:如果我们不手动弄执行这条指令的情况下是不是就可以避免发生SWENR异常呢
是的,SWENR是执行指令后才会发生。
,
yifan ?:
非常感谢您,我还想问EXCEP异常是不是和我判断的一样也不能和其他异常嵌套呢,EXCEP和SWENR异常之间谁的优先级比较高呢
,
Shine:
yifan ? 说:我还想问EXCEP异常是不是和我判断的一样也不能和其他异常嵌套呢
是的,您的判断是正确的,进入异常中断服务子程序后,TSR.XEN会被硬件自动清0,这时候是不允许EXCEP异常的。
yifan ? 说:EXCEP和SWENR异常之间谁的优先级比较高呢
EXCEP要高。
,
yifan ?:
感谢您的解答,那么NMI、内部异常、SWE异常有没有优先级之分呢,如果他们同时响应,需要如何处理呢,期待您的解答,谢谢谢谢
,
Shine:
同时发生的话,没有优先级之分,标志位会同时置1,可以根据需要先处理哪个中断,在CPU user guide里有说明。It is possible for all four bits to be set when entering the exception service routine. The prioritization and handling of multiple exceptions is left to software.