NET_DMA_DESCRIPTOR结构(netdma.h) 发现 产品文档 开发语言 主题 此主题的部分內容可能由机器或 AI 翻译。 消除警报 DMA_APPEND_HANDLER回调函数 DMA_CHANNEL_ALLOCATE_HANDLER回调函数 DMA_CHANNEL_FREE_HANDLER回调函数 DMA_CHANNELS_CPU_AFFINITY_HANDLER回调函数...
若要启动 DMA 传输,NetDMA 接口在 DMA 提供程序驱动程序的 ProviderStartDma 函数的 DescriptorPhysicalAddress 参数中提供NET_DMA_DESCRIPTOR结构的物理地址。 描述符VirtualAddress 参数包含描述符的虚拟地址。NET_DMA_DESCRIPTOR结构的 NextDescriptor 成员包含描述符链接列表中下一个NET_DMA_DESCRIPTOR结构的物理地址。
netdma.h) (NET_DMA_DESCRIPTOR 结构 发现 产品文档 开发语言 主题 消除警报 本主题的部分内容可能是由机器翻译。 DMA_APPEND_HANDLER回调函数 DMA_CHANNEL_ALLOCATE_HANDLER回调函数 DMA_CHANNEL_FREE_HANDLER回调函数 DMA_CHANNELS_CPU_AFFINITY_HANDLER回调函数...
struct ixgbe_ring { struct device *dev; /* device for DMA mapping */ void *desc; /* descriptor ring memory */ dma_addr_t dma; /* phys. address of descriptor ring */ unsigned int size; /* length in bytes */ u16 count; /* amount of descriptors */ } /** * ixgbe_setup_tx_res...
如果Descriptor 链表是一个循环链接,则传输被叫做环形传输(Cyclic Transfers)。 linux实现了DMA框架,叫做DMA Engine,内核驱动开发者必须按照固定的流程编码才能正确的使用DMA。DMA Engine提供出来了Slave API供其它内核调用。这些API实现了复杂的scatter gather传输模式,通过这些API实现DMA传输的驱动被叫做DMA client. ...
使用 SGDMA,应用程序可以将 BD( Buffer Descriptor, 用于描述事务的对象) 指向报头,将另一个 BD 指向有效负载,然后将它们作为单个消息传输。这种策略可以使TCP / IP 堆栈更有效,它允许将数据包标头和数据保存在不同的内存区域,而不是将数据包组装成连续的内存块。
< Buffer2ornextdescriptor address pointer *//* Enhanced ETHERNET DMA PTP Descriptors */#ifdef USE_ENHANCED_DMA_DESCRIPTORSuint32_t ExtendedStatus; /* Extended statusforPTP receive descriptor */uint32_t Reserved1; /* Reserved */uint32_t TimeStampLow; /*TimeStamp Low valuefortransmitandreceive ...
基于描述符(descriptor)的DMA要求在存储器中存入一组参数,以 启动DMA的系列操作。该描述符所包含的参数与那些通常通过编程写入DMA控制寄存器组的所有参数相同。不过,描述符还可以容许多个DMA操作序列串在一 起。在基于描述符的DMA操作中,我们可以对一个DMA通道进行编程,在当前的操作序列完成后,自动设置并启动另一次DMA...
__align(4) ETH_DMADESCTypeDef DMATxDscrTab[ETH_TXBUFNB];/* Ethernet Tx DMA Descriptor */ __align(4) uint8_t Rx_Buff[ETH_RXBUFNB][ETH_RX_BUF_SIZE]; /* Ethernet Receive Buffer */ __align(4) uint8_t Tx_Buff[ETH_TXBUFNB][ETH_TX_BUF_SIZE]; /* Ethernet Transmit Buffer */ ...