一,PS到PL的数据传输流程:
1,传输过程
(1)、向PL端查询剩余数据存储长度(以byte为单位);
(2)、通过写寄存器设置PL端DMA数据传输开始地址;
(3)、通过写寄存器设置PL端DMA数据传输长度(以byte为单位);
(4)、通过写寄存器启动PL端DMA传输;
(5)、通过读寄存器查询PL端DMA是否完成数据传输;

在SDK PS端代码:
PS(ARM)端驱动代码如下:
#define WRITE_SPACE_REG 0x84000004
#define ps2pl_SA 0x84000008
#define ps2pl_LENGTH 0x8400000C
#define ps2pl_START 0x84000010
#define ps2pl_FINISHED 0x84000014
data_space = Xil_In32(WRITE_SPACE_REG);
void init_axi_dma_simple_write(u32 num)
{
Xil_Out32(ps2pl_SA,(unsigned int )recvram);
Xil_Out32(ps2pl_LE
本文详细介绍了如何在ZYNQ FPGA中利用DMA控制器实现PS(ARM处理器)与PL(可编程逻辑)之间的数据传输。分别阐述了PS到PL和PL到PS的数据传输流程,包括寄存器设置、数据长度限制以及传输控制。同时,提到了DMA控制器的特点,如8个并行通道、中断和事件管理,以及多通道数据FIFO的工作原理。最后,列举了配置DMA进行内存到内存传输的步骤,包括初始化、中断处理和硬件交互。
订阅专栏 解锁全文
602





