使用C5517开发过程中,使用c55_caf_02.00.02.04例程进行修改,目前可以产生对应I2S0_CLK,I2S_FS,I2S0_RX信号(示波器抓取信号正常 48k时钟)但是一直抓不到DMA中断,可以查看哪些寄存器看I2S,DMA是否配置正确
Shine:
请看一下有没有idle指令,让MPORT不处于idle状态?
If using DMA, reset DMA and MPORT idle bit-fields and run idle instruction to force MPORT out of idle.
东东_Donny:
回复 Shine:
初始化DMA中有
/* In PCGCR LSW, set DMA0 CG to 0 for bringing DMA0 module out of idle */
CSL_FINS((*IDLE_PCGCRL_ADDR), IDLE_PCGCRL_DMA0_IDLE, 0);
指的是这个吗?
Shine:
回复 东东_Donny:
PCGCR 寄存器是控制DMA clock。mport是控制dma idle状态的,请看一下ICR.MPORTI位。如// enable the MPORT and disable HWA*(volatile ioport Uint16 *)0x0001 = 0x020E;asm("idle");
东东_Donny:
回复 Shine:
修改如下,仍然没有进入DMA_isr 请问ICR寄存器是在哪个下面,我在线调试过程中没有找到。。
/* Set HWAI ICR */
// *(volatile ioport Uint16 *)0x0001 = 0xFC0E | (1<<9);
*(volatile ioport Uint16 *)0x0001 = 0x020E;//modify by donny
asm(" idle");
Shine:
回复 东东_Donny:
cpu registers里没有吗?也可以通过view memory输入地址查看。
Shine:
回复 东东_Donny:
感谢分享!