导读: 本文移植是以STM32F4开发板为例,PHY物理层采用的LAN8720。除了少数代码需要更改之外,对于其他的开发板是通用的步骤。 详细内容可以参考 STM32F4 LWIP开发手册 第一部分:移植前准备 第二部分:移植过程 |
1.准备好基础工程
我选择具有内存管理功能的模板。在ST以太网驱动库中 DMA缓存区 采用数组实现,数组实现存放与RAM中太浪费内存,而我采用了内存管理使用外部SRAM来分配空间。
如下:(stm324x7_eth.c)中就是数组,可以注释掉。
ETH_DMADESCTypeDef DMARxDscrTab[ETH_RXBUFNB] __attribute__ ((aligned (4)));
ETH_DMADESCTypeDef DMATxDscrTab[ETH_TXBUFNB] __attribute__ ((aligned (4)));
uint8_t Rx_Buff[ETH_RXBUFNB][ETH_RX_BUF_SIZE] __attribute__ ((aligned (4)));
uint8_t Tx_Buff[ETH_TXBUFNB][ETH_TX_BUF_SIZE] __attribute__ ((aligned (4)));
2.下载ST以太网驱动库
STM32F4x7_ETH_LwIP_v1.1.0中的STM32F4x7_ETH_Driver里面一共三个文件:
1.stm32f4x7_eth.h 头文件
2.stm32f4x7_eth.c 驱动
3.stm32f4x7_eth_conf.h 以太网配置文件(需要重命名,原名:stm32f4x7_eth_conf_template.h)
3.下载LWIP文件
lwip-1.4.1.zip 是LWIP源码
contrib-1.4.1.zip 含官方例程和一些头文件