基于 官方提供的关于gd32f4移植netxduo 的底层驱动来 移植gd32h7 目前的移植情况呢 是 开Cache 网络不通 ping不通
不开Cache的情况下 网络是能够ping通的
mpu 配置
mpu_init_struct.region_base_address = 0x30000000;
mpu_init_struct.region_size = MPU_REGION_SIZE_32KB;
mpu_init_struct.access_permission = MPU_AP_FULL_ACCESS;
mpu_init_struct.access_bufferable = MPU_ACCESS_BUFFERABLE;
mpu_init_struct.access_cacheable = MPU_ACCESS_NON_CACHEABLE;
mpu_init_struct.access_shareable = MPU_ACCESS_NON_SHAREABLE;
mpu_init_struct.region_number = MPU_REGION_NUMBER1;
mpu_init_struct.subregion_disable = MPU_SUBREGION_ENABLE;
mpu_init_struct.instruction_exec = MPU_INSTRUCTION_EXEC_PERMIT;
mpu_init_struct.tex_type = MPU_TEX_TYPE0;
if defined (__CC_ARM) /*!< ARM compiler */
__attribute__((section (".RAM_D2"))) enet_descriptors_struct rxdesc_tab[ENET_RXBUF_NUM]; /*!< ENET RxDMA descriptor */
__attribute__((section (".RAM_D2"))) enet_descriptors_struct txdesc_tab[ENET_TXBUF_NUM]; /*!< ENET TxDMA descriptor */
__attribute__((section (".RAM_D2"))) uint8_t rx_buff[ENET_RXBUF_NUM][ENET_RXBUF_SIZE]; /*!< ENET receive buffer */
__attribute__((section (".RAM_D2"))) uint8_t tx_buff[ENET_TXBUF_NUM][ENET_TXBUF_SIZE]; /*!< ENET transmit buffer */
RAM_D2地址划分如下:
; RW data - SRAM0(0x30000000) + SRAM1(0x30004000) 16 + 16 = 32kb
RW_IRAM4 0x30000000 0x00008000 {
*(.RAM_D2)
}
|