正在开发一款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机的命令,脱机工作正常。我想知道为什么中断方式在脱机时不能工作呢?而在调试时则是正常的呢?



