草庐IT

【lwIP(第二章)】以太网DMA

目录一、以太网DMA描述符简介二、以太网DMA描述符结构三、如何追踪描述符总结一、以太网DMA描述符简介发送:不需要CPU的参与下,把描述符指向的缓冲区数据传输到TxFIFO当中接收:不需要CPU的参与下,将RxFIFO中的数据传输到描述符指向的缓冲区当中常规描述符结构/*stm32f4/f7/h7xx_hal_eth.h*/typedefstruct{ __IOuint32_tStatus; /*状态*/ uint32_tControlBufferSize; /*缓冲区1和2的大小*/ uint32_tBuffer1Addr; /*缓冲区1的地址*/ uint32_tBuffer2N

【lwIP(第二章)】以太网DMA

目录一、以太网DMA描述符简介二、以太网DMA描述符结构三、如何追踪描述符总结一、以太网DMA描述符简介发送:不需要CPU的参与下,把描述符指向的缓冲区数据传输到TxFIFO当中接收:不需要CPU的参与下,将RxFIFO中的数据传输到描述符指向的缓冲区当中常规描述符结构/*stm32f4/f7/h7xx_hal_eth.h*/typedefstruct{ __IOuint32_tStatus; /*状态*/ uint32_tControlBufferSize; /*缓冲区1和2的大小*/ uint32_tBuffer1Addr; /*缓冲区1的地址*/ uint32_tBuffer2N

DDR controller控制器之AXI接口模块设计

1、设计方案该模块是AXI接口与DDR3控制器的访问接口,属于AXIslave。主机AXImaster通过发送对应的读写地址和对应的读写数据,这些地址和数据通过异步FIFO缓存模块进行跨时钟域的处理和起到提高总线访问带宽的作用。axi接口模块将写命令通道的写地址(row、bank、col)、axi_awburst、axi_awsize、axi_awlength、axi_awid、读写标志拼接成一个数据帧存到AW_FIFO中;将读命令通道的读地址(row、bank、col)、axi_arsize、axi_arlength、axi_arid拼成一个数据帧存到AR_FIFO中;将写数据通道的wdat

STM32基于hal库的adc以DMA的多通道采样以及所遇问题解决

目录准备配置步骤 总结 准备正点原子的STM32F103ZET6开发板(精英版)CUBEMX配置软件KEIL5配置 右对齐就是正常的数据格式。左对齐除以16后得正常数据。(当输出非常大时考虑是否改了对齐方式,默认都是右对齐) 扫描模式,连续转换模式使能。(多通道下扫描模式自动使能)采样周期SamplingTime越大越精确,越小则则会频繁触发DMA中断(在开启dma中断时,我试了在14M的adc时钟程序进不来while(因为频繁触发DMA中断)看数据手册,知道三个adc中(adc1,adc2,adc3只有adc1和adc3能用DMA通道。 ADC的时钟不能超过14Mhz,配置外设到内存(cub

使用VIVADO中的MIG控制DDR3(AXI接口)四——MIG配置及DDR3读写测试

        在之前的内容里,讲述了AXI和DDR3的基本知识,也做了一个用AXIIP核读写BRAM的测试实验。接下来,我们就将这些部分结合在一起,做一个用AXIIP核对DDR3进行读写测试的实验。因为DDR3的时序比较复杂,所以我们一般都会使用Xilinx官方提供的MIGIP核来控制DDR3,上一节简介了比较常用的Native接口的MIGIP核,而我么进这次实验是基于AXIIP核来对DDR3进行读写测试的,所以我们这次要使用的是AXI接口的MIGIP核,它的接口是满足AXI时序的,这里也不在赘述。1配置AXIIP核    在新建一个工程后,和第二节的方法一样,我们配置一个AXI4的IP核,

使用VIVADO中的MIG控制DDR3(AXI接口)四——MIG配置及DDR3读写测试

        在之前的内容里,讲述了AXI和DDR3的基本知识,也做了一个用AXIIP核读写BRAM的测试实验。接下来,我们就将这些部分结合在一起,做一个用AXIIP核对DDR3进行读写测试的实验。因为DDR3的时序比较复杂,所以我们一般都会使用Xilinx官方提供的MIGIP核来控制DDR3,上一节简介了比较常用的Native接口的MIGIP核,而我么进这次实验是基于AXIIP核来对DDR3进行读写测试的,所以我们这次要使用的是AXI接口的MIGIP核,它的接口是满足AXI时序的,这里也不在赘述。1配置AXIIP核    在新建一个工程后,和第二节的方法一样,我们配置一个AXI4的IP核,

DMA原理与结构

1.概述DMA是DirectMemoryAccess的缩写,直译为直接存储器访问。它指一种允许在外部设备和存储器、存储器与存储器之间直接读写数据的高速传输操作,该传输过程既不通过CPU,也不需要CPU干预,整个数据传输操作在一个称为“DMA控制器”的控制下进行。CPU除了在数据传输开始和结束时做一些处理外,在传输过程中可以进行其它的工作。这样,在大部分时间里实现了CPU处理任务和内存数据交换的并行进行。因此,系统的整体性能被大大提高。举例来讲,当系统需要处理外设中的256K的数据时,首先需要将数据读取至内存:(1)在一个没有DMA控制器的系统中,假设CPU每条命令可以从外设中搬运1K的数据,那

201_DMA-BUF简单介绍

一、DMA-BUF等概念的介绍首先需要明确DMA-BUF,Dmabuffer,ION和DMA-BUFHeap是不同的概念。在Android多媒体系统中为了减少因不同进程之间内存的多次拷贝而产生的不必要的开销,最直接的想法是希望跟硬件设备进行交互的应用能有一个内存能跟设备驱动程序共享数据,理想情况是这个buffer能够直接是通过memorymap得到,并且是物理连续的,这样就能让DMA直接读写这块buffer,减少CPU或者外设来访问内存的开销。为此kernel引入了DMA-BUF这个框架(或者说是子系统),来解决CPU和各种不同外设驱动之间buffer共享的问题。其中Dmabuffer是一块允

AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源

**AXI_UART调试说明-PS使用AXI_Uartlite拓展PL端串口资源**注:本例程是在xc7z010clg400_1实现,若导入至复旦微电子需更改为xc7z045iffg900-2L(目录中带*号的可略过)背景:PS端UART资源有限,难以满足实际运用中多串口的需求。具体方法:PS通过AXI总线调用PL的资源进行UART的拓展,本说明采用vivado自带的IP核AXIUartlite完成,属于AXI_GPIO。一、VivadoIP核建立完成图如下1.1ZYNQ核配置这块一般默认即可(可以双机查看GPMasterAXIInterface->M_AXI_GP0_Interface是否勾

4.1.3 vivado中AXI写DDR说明

link在使用ZYNQ7021系列的FPGA,若涉及到PL部分读写DDR,可使用过AXI-Lite,AXI4-FULL,AXI-Stream这三个IP来实现,使用的是这三个IP的主机模式。AXI4总线协议解析AXI4:主要面向高性能地址映射通信的需求;AXI4-Lite:是一个简单地吞吐量地址映射性通信总线;AXI4-Stream:面向高速流数据传输;AXI4总线分为主、从两端,两者间可以连续的进行通信;AXI4总线采用READY,VALID握手通信机制,主设备收到从设备发送的READY,主设备将数据和VALID信号同时发送给从设备。AXI4-Lite所有的猝发长度为1,数据总线宽度为32位或