STM32的DMA描述符又分为发送描述符和接收描述符,它们都用ETH_DMADESCTypeDef来定义,用图说明以接收描述符(发送描述符类似)的链式结构如图: 在stm32f4x7_eth.c文件中定义两个DMA描述符数组,一个用DMA接收一个用于DMA发送,代码如下: __align(4) ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB];/* Ethernet Rx...
ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT] __attribute__((section(".RxDecripSection")));/*Ethernet Rx DMA Descriptors*/ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT] __attribute__((section(".TxDecripSection")));/*Ethernet Tx DMA Descriptors*/uint8_t Rx_Buff[ETH_RX_DESC_...
dma_rx_desc_tab=mymalloc(SRAMIN,ETH_RXBUFNB*sizeof(ETH_DMADESCTypeDef));//申请接收描述符的内存 dma_tx_desc_tab=mymalloc(SRAMIN,ETH_TXBUFNB*sizeof(ETH_DMADESCTypeDef));//申请发送描述符的内存 rx_buff=mymalloc(SRAMIN,ETH_RX_BUF_SIZE*ETH_RXBUFNB); //申请接收缓存区 tx_buff=mymalloc(SR...
ST官方以太网库stm32f2x7中使用链接结构的DMA描述符,那么在以太网描述符结构体ETH_DMADESCTypeDef中Buffer1Addr就是缓冲区的地址,Buffer2NextDescAddr就是下一个描述符的地址, 如下图。 在stm32f2x7_eth.c中定义了两个DMA描述符数组,一个用于DMA接收,一个用于DMA发送,如下: 接收和发送描述的大小通过宏ETH_RXB...
/*Ethernet Rx DMA 描述符*/__attribute__((at(0x30040000))) ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT];/*Ethernet Tx DMA 描述符*/__attribute__((at(0x30040060))) ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT];/*Ethernet 接收缓冲*/__attribute__((at(0x30040200))) uint8...
__MEMORY_AT(0x30040060);#elifdefined(__GNUC__)/* Ethernet Rx DMA 描述符 */__attribute__((section(".RAM3")))ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT];/* Ethernet Tx DMA 描述符 */__attribute__((section(".RAM3")))ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT];__...
ST官方以太网库stm32f2x7中使用链接结构的DMA描述符,那么在以太网描述符结构体ETH_DMADESCTypeDef中Buffer1Addr就是缓冲区的地址,Buffer2NextDescAddr就是下一个描述符的地址, 如下图。 在stm32f2x7_eth.c中定义了两个DMA描述符数组,一个用于DMA接收,一个用于DMA发送,如下: ...
uint8_t Rx_Buff[ETH_RX_DESC_CNT][ETH_MAX_PACKET_SIZE]; /* Ethernet Receive Buffers */ #elif defined ( __CC_ARM ) /* MDK ARM Compiler */ __attribute__((at(0x30040000))) ETH_DMADescTypeDef DMARxDscrTab[ETH_RX_DESC_CNT]; /* Ethernet Rx...
ETH_DMADescTypeDef DMATxDscrTab[ETH_TX_DESC_CNT]; /* Ethernet Tx DMA Descriptors */ void HAL_ETH_ErrorCallback(ETH_HandleTypeDef *heth){ uint32_t errorCode = heth->ErrorCode; } int main(void) { /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ ...
ETH_DMADescTypeDef *dmatxdesc = (ETH_DMADescTypeDef *)dmatxdesclist->TxDesc[descidx];ETH_...