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.

DM642 PCI 中断问题



正在开发一款DM642的产品,使用了PCI与PC通讯。DSP端用了DSP/BIOS Configration 来配置中断,见图:

DSP端中断程序如下:

extern "C" void PCI_ISR()

{
  Uint32 tmp=PCI_RGET(PCIIS);//读出,对应位肯定是1,表示来了对应位中断
  PCI_RSET(PCIIS,tmp);//必须把对应位写1,才能清除,使下一个中断继续
 //由于读出的对应位是1,所以将就写回去
 //<TMS320C6000系列DSP的CPU与外设>P285

}

在MAIN主函数中允许13号中断,代码如下:

unsigned int OldIER=IER;
OldIER |=0x00002000;//开放13号中断
IER=OldIER;

PC机使用Windriver通过写IO寄存器来触发DSP中断,如图:

使用仿真器调试都正常,能够正确收到PC机传来的中断;可是程序烧进FLASH,脱机运行,则不能收到pc机传来的中断(排除程序没有烧进去的原因)。后来DSP改用定时查询方式去接收PC机的命令,脱机工作正常。我想知道为什么中断方式在脱机时不能工作呢?而在调试时则是正常的呢?