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.

TMS320C6678: 6678

Part Number: TMS320C6678

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

  • 谢谢您的回复,这个文件我看过,但是我在用硬件实现这五种异常嵌套时发现EXCEP是难以和其他异常嵌套的,SWENR异常可以和其他异常嵌套吗,就是在发生其他异常后能发生SWENR异常并处理吗,他们之间存在优先级吗,而且SWENR异常是由指令触发的,如果我们不手动弄执行这条指令的情况下是不是就可以避免发生SWENR异常呢

  • 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异常是不是和我判断的一样也不能和其他异常嵌套呢,EXCEP和SWENR异常之间谁的优先级比较高呢

  • 我还想问EXCEP异常是不是和我判断的一样也不能和其他异常嵌套呢

    是的,您的判断是正确的,进入异常中断服务子程序后,TSR.XEN会被硬件自动清0,这时候是不允许EXCEP异常的。

     

    EXCEP和SWENR异常之间谁的优先级比较高呢

    EXCEP要高。

  • 感谢您的解答,那么NMI、内部异常、SWE异常有没有优先级之分呢,如果他们同时响应,需要如何处理呢,期待您的解答,谢谢谢谢

  • 同时发生的话,没有优先级之分,标志位会同时置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.