AC6下用的CMSIS LWIP MPU配置 ?
将硬汉大哥的LWIP+LAN8720 调通后,将其移植添加到我的工程里面,出现了可能是MPU配置不正确的问题,情况是将MPU和CACHE禁止后可以ping通,开启就ping不通。现描述我的问题,请求指教。我是在AC6的编译环境下,我的以太网描述符定义为:
/* Ethernet Rx DMA 描述符 */
ETH_DMADescTypeDef DMARxDscrTab __attribute__((section(".ARM._at_0x30040000")));
/* Ethernet Tx DMA 描述符 */
ETH_DMADescTypeDef DMATxDscrTab __attribute__((section(".ARM._at_0x30040060")));
/* Ethernet 接收缓冲 */
uint8_t Rx_Buff __attribute__((section(".ARM._at_0x30040200")));
在 EMAC_STM32H7xx.c 文件里面:
#define EMAC_TXBUF_ADDRESS 0x30042000
static uint8_t TX_Buff __MEMORY_AT(EMAC_TXBUF_ADDRESS);
在 stm32h7xx_hal_conf.h 文件里面:
#define ETH_TX_DESC_CNT 4 /* number of Ethernet Tx DMA descriptors */
#define ETH_RX_DESC_CNT 4 /* number of Ethernet Rx DMA descriptors */
stm32h7xx_hal_eth.h 里面:
#define ETH_MAX_PACKET_SIZE ((uint32_t)1528U)
D2 域的SRAM3 空间的时钟也使能了,MPU配置部分如下图:
还有一点就是HAL库文件我用的是MDK RTE环境配置时带的,没有将其隔离开来,
可以说我将硬汉大哥的配置照抄了一遍,但是使用硬汉的例程开启MPU可以ping 通,但是我的就不行,这让我百思不得其解。
找个对比软件,比较两个工程比较方便。 eric2013 发表于 2021-6-3 21:51
找个对比软件,比较两个工程比较方便。
讲的有道理
页:
[1]