首次使用C6000系列的DSP,好不容易解决了DM6437的VPBE 和 VPFE采集和显示图像。
可是奇怪的是当我开启中断的时候,似乎INTC 不接受DVINT1的事件(25号),当我把 INT4 选择为EVT4时能够正常产生中断,调试时终端能看到输出,可是当我把INT4选择为EVT25时,不能产生中断,我甚至将EVT25手动置位也没触发中断,到底怎么回事呢?以下是我的初始化设置:
//初始化中断
void int_init()
{
CSR=0x100; //disable all interrupts
IER=0x00; //disable all interrupts except NMI
ICR=0xffff; //clear all pending interrupts
ISTP = 0x10810000; //C64X+ VECTORS 指向VECT段需设置ISTP,ISTP=。cmd中设置中断向量表的地址
INTC_EVTCLR0 = 0xFFFFFFFF;
INTC_EVTCLR1 = 0xFFFFFFFF;
INTC_EVTCLR2 = 0xFFFFFFFF;
INTC_EVTCLR3 = 0xFFFFFFFF;
INTC_EVTMASK3 = 0xFFFFFFFF;
INTC_EVTMASK2 = 0xFFFFFFFF;
INTC_EVTMASK1 = 0xFFFFFFFF;
INTC_EVTMASK0 = 0xFFFFFFFF;
INTC_INTMUX1 = VDINT1_EVENT;
INTC_INTMUX2 = 0;
INTC_INTMUX3 = 0;
//INTC_INTMUX3 = VDINT1_EVENT;// ->INT4
IER |= (1 << 4);
CSR |= 1;
}
主函数部分:
while(1)
{
_waitusec(1000000);
INTC_EVTSET0 = 1 << VDINT1_EVENT;
if(flag)
{
flag = 0;
printf("flag is set !\n");
}
}
yao liu1:
似乎发现了点问题,当我把VDINT设置为0可以中断,难道EVTSET 不管用?