问答

汇集网友智慧,解决技术难题

21ic问答首页 - gd32h7+netxduo

国产芯片 技术交流 嵌入式 GD32H7 NetXDuo MPU

gd32h7+netxduo

nzyk2025-02-21
基于 官方提供的关于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)
}

       


回答 +关注 3
1572人浏览 0人回答问题 分享 举报
0 个回答

您需要登录后才可以回复 登录 | 注册