目录
1.1 概述
平台使用zynq7020,数据流程,PS通过PL侧 AXI DMA访问KU085采集的数据,该数据存储在PL里面的硬盘中。最后将PS收到的数据通过UDP发送到PC中显示。
PC <--> PS <--> AXI DMA <--> PL <-- > KU085
验证示意:
验证框图:
1.2 KU085的设计
KU085的设计,完成FIFO的数据接收,用ILA抓取数据。
KU085的设计,完成FIFO的数据发送,用ILA抓取数据。产生模拟数据(COUNTER[15:0])发送。
1.3 7Z020的设计
7Z020的设计,由PS和PL配合完成。
1.3.1 PS侧
1.3.2 PL侧
主要是做AXI_DMA,FIFO的数据通道。
需要注意的是,AXI_DMA是AXIS的形式,需要有tlast信号。
Demo工程,接收侧设定每256个32比特数据,产生一个tlast信号。
Demo工程,发送侧由软件配置传输的数据长度。
地址分配:
GPIO_PL,demo中没有使用。
1.3.3 中断表:
0: PL_UART.
1: MCU_UART.
2: AXI_DMA_0 MM2S Interrupt. 31
3: AXI_DMA_0 S2MM Interrupt. 32
5: AXI_Interrupt_Controller Interrupt. 33
6: AXI_DMA_1 MM2S Interrupt. 34
7: AXI_DMA_1 S2MM Interrupt. 35
1.3.4 AXI_DMA配置:
1.4 软件调试
1.4.1 需要软件
- 驱动程序
PS侧使用AXI DMA的驱动,驱动文件包括:axi_dma.c axidma_chrdev.c axidma_dma.c,驱动编译成模块axidma.ko
2. 应用程序
应用程序为axidma_test,具体功能包括:
- PS侧通过AXI DMA通道0将PS侧的数据发送到KU085;
- PS侧通过AXI DMA通道1将KU085采集到的数据发送到PC(UDP)。
3.库文件
运行应用程序axidma_test时需要库文件libaxidma.so。
1.4.2 软件使用
板子调试串口为调试小板上的J3,上电自动启动后,调试网口的IP地址为192.168.11.233。
- 新建文件1.txt,在里面随意写入任何内容;
- 执行写操作:axidma_test 1.txt 2.txt -w;
- 执行读操作:axidma_test 1.txt 2.txt -d,每次读取1KB的内容。
1.4.3 调试结果
读数据测试结果:
1.5 源码
1.5.1 设备树
见另外一个博客《AXI DMA 设备树》https://blog.csdn.net/hongmao6/article/details/110631561
1.5.2 驱动源码
见另外一个博客《AXI DMA驱动与axidma_test测试源码》https://blog.csdn.net/hongmao6/article/details/110634450
1.5.3 axidma_test.c源码
axidma_test.c源码见另外博客《AXI DMA驱动与axidma_test测试源码》https://blog.csdn.net/hongmao6/article/details/110634450