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.

DSP C5517中断嵌套具体如何实现?

Expert 2137 points


您好:我看了您推荐的帖子, 写到可以实现中断嵌套,在低优先级中断中打开总中断和高优先级的IER位,这样当高优先级产生时,才能响应高优先级,同时需要做好现场保护。


打开总中断:IRQ_globalEnable();   //开全局中断

高优先级IER位:高优先级中断时定时器0,具体如何操作?


还有需要现场保护是指什么?

麻烦老师您说的具体点

  • 往IER寄存器对应的timer0位写1.

    如果你的ISR是C语言的话,用interrupt关键字会自动做现场保护。如果是汇编语言写的话,需要手动做现场保护。可以参考附件的PPT。

  • 老师:我刚刚试了在串口中断中添加一下语句 :

    CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 | 0x0010; 
    CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 & 0x0010; //只允许定时器中断
    asm(" NOP"); // Wait one cycle
    asm(" BCLR INTM"); //开全局中断

    就是加了CSL_CPU_REGS->IER0 = CSL_CPU_REGS->IER0 & 0x0010; //只允许定时器中断  我发现串口中断会不响应了