关于瑞萨RX23T中断嵌套的问题

瑞萨RX23T芯片的中断优先级是否为抢占式?在执行低优先级中断服务函数时若高优先级中断被触发,是否会打断低优先级中断的处理函数?谢谢

  • 好像是有15个优先级,可以中断嵌套,还可以设置一个fast interrupt并可以为其分配专用的寄存器以实现更快的中断相应
  • In reply to !array!:

    我现在SCI1是最高优先级,SCI2是14优先级,SCI2中断比较耗时.两个中断都开时SCI1接收数据时不时会漏数据,把SCI2关了之后就好了,请问这是什么情况?
  • In reply to EnTaroYan:

    没遇到过这个情况,不太清楚.接收需要时间,估计是你在这段时间内在SCI2中断中对SCI1存放接收数据的数组做更改了吧
  • In reply to !array!:

    SCI2中断没有对SCI1的接收缓冲区做更改,另外打开SCI2中断后,SCI1一直进入receive error中断时为什么呢
  • 要实现在低优先级中断运行时被高优先级打断,要先在低优先级中断服务程序的开始处开启中断允许“setpsw_i(); ”,并在结束禁止中断(clrpsw_i(); )
    例:

    /**********************************************************
    uart5 receive interrupt service program
    **********************************************************/
    void IntSci5Rx(void) //receive interrupt program
    /***************************************************************************
    * Description: control interrupt
    ***************************************************************************/
    {

    setpsw_i(); /* interrupt enable */
    // interrupt pending flag reset
    ICU.IR[223].BIT.IR = 0; //RXI5

    //servece program
    un8_Uart5BufferData[u8_CommInOutByteCount].byte = SCI5.RDR;//receive data


    //servece program end

    clrpsw_i(); /* interrupt disable */
    }