LWIP 无操作系统的移植

本文详细介绍了如何在STM32上移植LWIP无操作系统,包括准备基础工程、添加ST以太网驱动库、下载并配置LWIP源码,以及针对LAN8720的特定修改。主要涉及conf.h、eth.c、ethernetif.c、mem.c和memp.c等文件的调整,以及解决内存分配和系统时钟问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

导读:
本文移植是以STM32F4开发板为例,PHY物理层采用的LAN8720。除了少数代码需要更改之外,对于其他的开发板是通用的步骤。
详细内容可以参考 STM32F4 LWIP开发手册
第一部分:移植前准备
第二部分:移植过程

移植前准备

1.准备好基础工程

我选择具有内存管理功能的模板。在ST以太网驱动库中 DMA缓存区 采用数组实现,数组实现存放与RAM中太浪费内存,而我采用了内存管理使用外部SRAM来分配空间。
如下:(stm324x7_eth.c)中就是数组,可以注释掉。
ETH_DMADESCTypeDef  DMARxDscrTab[ETH_RXBUFNB] __attribute__ ((aligned (4))); /* Ethernet Rx DMA Descriptor */
ETH_DMADESCTypeDef  DMATxDscrTab[ETH_TXBUFNB] __attribute__ ((aligned (4))); /* Ethernet Tx DMA Descriptor */
uint8_t Rx_Buff[ETH_RXBUFNB][ETH_RX_BUF_SIZE] __attribute__ ((aligned (4))); /* Ethernet Receive Buffer */
uint8_t Tx_Buff[ETH_TXBUFNB][ETH_TX_BUF_SIZE] __attribute__ ((aligned (4))); /* Ethernet Transmit Buffer */

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 含官方例程和一些头文件

移植

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

猎羽

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值