环境配置
- STM32H743_NUCLEO开发板(LAN8742A芯片)
- CUBEIDE
- 无OS
配置
- 时钟 400MZH,如果配置不了400MHZ需要在RCC提高电压等级1(默认3)
- 使能ICACHAE和DCACHE
- 使能MPU(非常重要配置)
配置外设引脚
ETH配置
使能ETH中断
Enabled 和输入同一网段的IP
以上配置部分完成
代码部分
在main()函数中添加MX_LWIP_Process(),时钟配置中使能__HAL_RCC_D2SRAM3_CLK_ENABLE();
在STM32H743ZITX_FLASH.ld文件中添加内存分配相关代码
.lwip_sec (NOLOAD) : {
. = ABSOLUTE(0x30040000);
*(.RxDecripSection)
. = ABSOLUTE(0x30040060);
*(.TxDecripSection)
. = ABSOLUTE(0x30040200);
*(.RxArraySection)
} >RAM_D2 AT> FLASH
烧录,ping结果
总结:ping不通原因
- 管教配置
- MPU配置(踩了很大的坑),参考STM32官方例程 <LwIP_HTTP_Server_Netconn_RTOS> 可以复制main中的MPU_Config()函数代码.
- 添加__HAL_RCC_D2SRAM3_CLK_ENABLE()和MX_LWIP_Process();
- 最最最后,还需要内存分配.也可以参数官方的STM32H743ZITX_FLASH.ld文件进行复制.