我在FPGA实现了一些自定义的时序逻辑去获取数据,这个数据需要发给EF2M45LG48B内的MCU去处理,如果通过定时器定时去获取这些数据,数据的实时性满足不了需求,有没有办法可以在FPGA的设置信号去触发MCU中断。
本来我是想通过DMA的三个信号去触发DMA中断,来达到我的目的(FPGA设置信号触发MCU中断)
但是我在使用dma的demo程序时,修改相关配置都无法触发DMA的中断函数
void mem2mem()
{
volatile uint8_t a,b;
uint32_t buf_rx[10] = { 0 };
DMAC_InitTypeDef dma_config;
dma_config.device = AHB_SLAVE;
dma_config.type = Peripheral_to_Memory_DMAC_Flow_Controller;
dma_config.msize = Burst_Transaction_Length_1;
dma_config.width = Transfer_Width_32_bits;
dma_config.src_inc = Address_Increment;
dma_config.dst_inc = Address_Increment;
dma_config.int_en = Interrupt_Enabled;
DMAC_Int_Register(dma_isr_func, NULL);
HAL_DMAC_Init(DMAC_CHANNEL_1,dma_config);
NVIC_EnableIRQ(DMAC_IRQn);
HAL_DMAC_Start_Transfer(DMAC_CHANNEL_1, DMAC_AHB_RW_ADDRESS, buf_rx, 10);
a = HAL_DMAC_Get_Busy_Channel();
HAL_DMAC_Wait_Done(DMAC_CHANNEL_1);
b = HAL_DMAC_Get_Busy_Channel();
}