chen_mo 发表于 2021-6-3 21:37:52

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:39

找个对比软件,比较两个工程比较方便。

chen_mo 发表于 2021-6-4 08:43:23

eric2013 发表于 2021-6-3 21:51
找个对比软件,比较两个工程比较方便。

讲的有道理
页: [1]
查看完整版本: AC6下用的CMSIS LWIP MPU配置 ?