1.在IPCGR寄存器实现核间中断的过程中未编写中断向量表文件,也可以实现核间的中断,请问核间中断是不需要配置吗?程序里中断映射到INT4
2.在使用定时器中断,想要实现每隔2秒发送一次数据时,参考K1例程中带有中断向量表文件,请问这两种中断如何融合到一个工程里呢?我尝试把定时器的例程中向量表文件删除也可以正常使用,那这个文件的意义在哪?
3.想要实现定时器中断每隔两秒通过EMIF口发送一个数据,发送的函数是直接写在中断服务函数里吗?还是有其他实现方式?
user6109135:
还想问一下,这个汇编的中断向量表文件是如何被识别的呢?文件名有特定命名要求吗?
,
Nancy Wang:
1、都需要配置的。有可能你看到的工程是调用的封装好的函数。
2、在K1例程已有的中断向量表中添加IPC ISR与中断号的配置。
3、可以的。
4、通过ISTP指向中断向量表。以下文档可以参考看一下。
www.ti.com/…/sprugh7.pdf
,
user6109135:
您好,如果想完成每隔2秒通过EMIF口向外发送一个数据,应该用定时器的哪种模式?
,
Nancy Wang:
使用64bit模式就可以了。
,
user6109135:
您好,我使用了C:\Program Files\Texas Instruments\pdk_C6678_1_0_0_16\packages\ti\csl\example\timer这个例程,我想利用GP-TIMER得到想要的定时中断,于是,我改写了test_gp_time()这个函数,修改如下:
TimeCountMode 改为 CSL_TMR_ENAMODE_CONT;
hwSetup.tmrTimerPeriodLo = 0x3B9ACA00;// 即十进制的1000000000
hwSetup.tmrTimerPeriodLo = 0x00;
为了能够不停产生中断,我把while(timeISRCounter !=1);去掉,
然后为了能查看每次产生的中断,我修改OStickISR(void)
{timeISRCounter++ ;
printf("The timeISRCounter is %d.\n" , timeISRCounter);
}加了这句printf语句默认的是内部时钟,是6分频,则应该是每6秒产生一次中断,但是我在运行的时候,发现瞬间就输出了将近100条printf语句,也就是说没有达到设置的中断周期间隔。应该如何设置呢?
,
Nancy Wang:
hwSetup.tmrTimerPeriodLo = 0x3B9ACA00; // 即十进制的1000000000
hwSetup.tmrTimerPeriodLo = 0x00;
这边是不是写错了?tmrTimerPeriodLo 赋值两次。
,
user6109135:
/************************************************************************************ INTC related code ***********************************************************************************//* Open INTC */vectId = CSL_INTC_VECTID_12;tmrIntcHandle = CSL_intcOpen(&tmrIntcObj, CSL_GEM_TINTLN, &vectId, NULL);
/* Bind ISR to Interrupt */EventRecord.handler = (CSL_IntcEventHandler)&TimerInterruptHandler;EventRecord.arg= (void *)CSL_GEM_TINTLN;CSL_intcPlugEventHandler(tmrIntcHandle, &EventRecord);/* Event Enable */CSL_intcHwControl(tmrIntcHandle, CSL_INTC_CMD_EVTENABLE, NULL);观察到程序执行到这一部就跑飞了,进入了csl_intcDispatcher
,
user6109135:
hwSetup.tmrTimerPeriodLo =0x3B9ACA00;hwSetup.tmrTimerPeriodHi = 0x00;
是这样的,上面打字打错了
,
user6109135:
会进中断服务程序一次,然后就进入了csl_intcDispatcher
,
user6109135:
CSL_intcHwControl(tmrIntcHandle, CSL_INTC_CMD_EVTENABLE, NULL);
在使能的这一步就跑飞了,程序其他地方都没改,这个程序是不需要中断向量表的吧,我看提供的程序里没有
,
Nancy Wang:
查一下CSL_TMR_ENAMODE_CONT的值是多少?ENAMODE_ HI位试11b吗?如果不是改一下看看。
www.ti.com/…/sprugv5a.pdf
,
Nancy Wang:
user6109135 说:
CSL_intcHwControl(tmrIntcHandle, CSL_INTC_CMD_EVTENABLE, NULL);在使能的这一步就跑飞了,程序其他地方都没改,这个程序是不需要中断向量表的吧,我看提供的程序里没有
你前面不是测试过可以进中断程序吗?那配置就没有问题。