我应该在向CPU发出DMASEV之前插入内存屏障指令吗?-Altera-Intel社区-FPGA CPLD-ChipDebug

我应该在向CPU发出DMASEV之前插入内存屏障指令吗?

ARM和Altera的建议是在向CPU发出DMASEV指令之前插入存储器屏障指令,以避免DMA控制器在AXI传输完成之前发出中断信号。

解决/修复方法

正在更新HWlibs DMA驱动程序alt_dma.c,并在DMASEV指令之前添加了内存屏障指令,如下所示。

if(send_evt)
{
if(status == ALT_E_SUCCESS)
{
status = alt_dma_program_DMAWMB(program);
}
if(status == ALT_E_SUCCESS)
{
dprintf(“DMA [M-> M]:添加事件…… \ n”);
status = alt_dma_program_DMASEV(program,evt);
}
}

HWlibs DMA驱动程序的更新版本计划在下一版SoC EDS中提供。

请登录后发表评论

    没有回复内容