TI中文支持网
TI专业的中文技术问题搜集分享网站

请问c67x中断设置的问题.

使用的是6722.CCS6.0.

开始用CSL做RTI的中断,出现很多warning,程序运行一段时间,中断也近不去了.不知道是不是版本问题,就不用CSL了.

后来自己初始化寄存器,自己配置vector.asm:

;unused 4 ;RTI Interrupt 0
Timer1_int:
mvkl _comp0Isr,b31;_xint0_isr
mvkh _comp0Isr,b31
b b31
mvc PCE1,b31 ; address of interrupt vectors
mvc b31,ISTP ; set table to point here
nop 3
nop
nop

现在有个问题:b31在外面的程序中也会被用到.怎么防止冲突呢?有没有压栈的机制.

虽然没有直接跟踪到b31被使用,可是程序的局部变量都用到b19了.

补充一下,现象是这样的:

开了定时器,计算FFT,会出现某些结果异常.关掉定时器就一切ok了.

或者是大量的FFT或卷积运算,运算中途定时器中断再也没有响应了.

ching ricky:

另外,也搞不懂这里是对哪些寄存器或者地址进行操作了:

/* Assigning the ISR */ isrRec.handler = comp0Isr; /* No argument is passed to the ISR */ isrRec.arg = (void *) 0x0;

CSL_intcPlugEventHandler (hIntc, &isrRec);

看了一下,好像是有个表,这个函数把中断服务函数插到表里面.

不知道CSL怎么避免上面提到的b31寄存器的问题.

赞(0)
未经允许不得转载:TI中文支持网 » 请问c67x中断设置的问题.
分享到: 更多 (0)