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.

TMS570LS1227 关于IRQ FIQ中断问题的咨询

Other Parts Discussed in Thread: TMS570LS1227

您好!

        我在使用TMS570LS1227的时候,关于IRQ跟FIQ有个疑问想咨询。

        1.  当前我将RTI Compare0设置为FIQ(1ms定时),CAN1 HIGH 设置为IRQ, 在程序里通过Can1 对收到的报文进行处理再响应。

当我单次慢速(手点)收发报文的时候,程序是正常的,但是当我进行大量数据收发测试(1ms 上位机连续发100次)的时候,程序会进入 prefetchEntry 异常。

         2. 当我将将RTI Compare0设置为FIQ,CAN1 HIGH 设置为FIQ,进行上述工程试验,一切收发正常;

        3.  当我将将RTI Compare0设置为IRQ,CAN1 HIGH 设置为IRQ,进行上述工程试验,一切收发正常;

        然后我翻看了user guide,看到了15.2.2这段话,在我标注的红框处及手册上了解到:

               1). 当有IRQ中断触发时,会失能其他的IRQ中断,

               2). 当有FIQ中断触发时,会失能所有的IRQ和其他的FIQ中断,

              3).FIQ的中断优先级比IRQ的高,并且会打断IRQ的中断,优先执行FIQ中断。

              4).同样的FIQ或IRQ中断,不会打断相同的FIQ或IRQ中断(因为当有中断时,其他同类的中断会失能);

看完VIM这章节的资料 后,我对上述进入异常问题的理解如下:

         1. 当我全部配置成IRQ或FIQ时,因为1.2.4点,同类的中断并不会响应,需要等当前中断程序执行完毕;

         2. 当配置的IRQ中断里有FIQ的话, 当有FIQ中断出现后,FIQ中断会打断IRQ中断的执行,并失能被打断的IRQ,

直到FIQ中断执行完成后,才会转到被中断的IRQ中断中继续执行。

上述是我对我遇到的问题及手册的理解。

然后我想问的问题是:当(RTI)FIQ打断(CAN1)IRQ中断时,如果在(RTI)FIQ中断还没执行完的时候,被打断的(CAN1)IRQ又触发了一次中断,此时,IRQ中断及其中断处理函数是怎么处理的?  这个是会造成我CAN1收发会进入异常的原因么? 

下面是手册文档,及我发生异常时的CP15的寄存器的值。