各位专家好:
(66AK2L06)我在FFTC的例程中加入EDMA3时,发现EDMA3函数(EDMA3_DRV_enableTransfer)与QMSS(Qmss_init)冲撞,不能进入中断函数;将EDMA3_DRV_enableTransfer 放在 Qmss_init 前可以进入中断函数,放在 Qmss_init 后边不能进入中断函数。
这可能是哪里出了问题?是不是QMSS和EDMA3的中断发生了冲撞?
查看Qmss_init()函数,没有找到和中断相关的语句; 查看寄存器Interrupt Enable Register 值是 1 -> enable; Event Enable Register 值是 0-> not enable; Event Missed Register 值是 0 -> nor miss; 请问这说明有没有识别中断?
Nancy Wang:
查一下IFR有没有置1,如果置1的话说明中断已经识别。如果没有的话手动置位一下看能否正常进入中断函数,能够进入的话说明中断映射应该是没有问题的。
kang xiao:
回复 Nancy Wang:
将EDMA3放在QMSS之前,IFR值变换情况如下图所示:
EDMA3放在QMSS之后,,IFR值变换情况如下图所示:
区别在于,在判断iqRaised1时,IFR的值不一样: 放在QMSS之前IFR清零,放在QMSS之后IFR不变,这说明 识别了中断,但是没有进入中断,是中断映射的问题, 我这分析的对吗?
kang xiao:
回复 Nancy Wang:
在判断iqRaised1时,Interrupt Pending Register (IPR)的值不一样: 放在QMSS之前IPR清零,放在QMSS之后IPR不变。
Nancy Wang:
回复 kang xiao:
手动置位可以进中断吗?
kang xiao:
回复 Nancy Wang:
不可以。
kang xiao:
回复 Nancy Wang:
你好,根据我查阅的资料(下图所示),EDMA3传输完成,IPR会置位,在中断使能的情况下,就会进入中断服务函数,中断服务函数执行完成之后,IPR会被复位;
我调试的结果是: EDMA3传输完成,IPR会置位,但是没有进入中断服务函数,IPR也就没被复位。
为什么没有进入到中断服务函数?
可能什么原因导致进入不到中断函数?
QMSS对中断会有影响吗?
kang xiao:
回复 Nancy Wang:
我使用的是66AK2L06, 在调试的时候,要查看映射,为什么找不到INTMUX 寄存器?文档里里也没有INTMUXn寄存器?
Nancy Wang:
回复 kang xiao:
看一下这个帖子
e2echina.ti.com/…/19569
kang xiao:
回复 Nancy Wang:
QMSS初始化 会对 EDMA3 中断有什么影响吗?因为 EDMA3_DRV_enableTransfer 放在Qmss_init之前传输正常,可以进入中断服务函数,但是放在Qmss_init后边不能进入中断服务函数。
Nancy Wang:
回复 kang xiao:
简单的初始化应该是不会对中断有影响的,我建议你把代码还有寄存器的状态贴到英文论坛上,看看能不能帮您解决问题。
e2e.ti.com/…/791