LWIP 无操作系统的移植

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

导读:
本文移植是以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 含官方例程和一些头文件

移植

lwip是一个轻量级的网络通讯协议栈,用于嵌入式系统中实现TCP/IP通讯。而IAR是一款嵌入式开发工具,用于编译和调试嵌入式系统的程序。要在没有操作系统的嵌入式系统上移植lwip,可以通过以下步骤实现: 首先,需要将lwip的源码加入到项目中,并进行必要的配置。lwip的源码通常会包括TCP/IP协议栈的实现,以及与操作系统、硬件相关的部分。因为目标系统没有操作系统,所以需要根据实际情况修改lwip的配置,包括内存管理、任务调度等相关设置。 其次,需要根据目标硬件编写lwip的底层驱动程序,以适配目标系统的网卡或者以太网控制器。这部分工作涉及到硬件接口的调试和适配,需要对目标系统的硬件结构和寄存器进行深入了解。 接着,需要在IAR开发环境中编写应用程序,包括实现网络通讯的功能,并与lwip协议栈进行集成。这部分工作包括网络套接字的编程,数据包的发送和接收等。 最后,需要进行调试和测试工作,确保lwip在目标系统上能够正常工作,实现基本的网络通讯功能。这其中可能需要借助IAR提供的调试工具,对程序进行逐步调试和性能优化。 通过以上步骤,就可以在没有操作系统的嵌入式系统上成功移植lwip,并利用IAR进行开发和调试。这样就能够在嵌入式系统中实现基于TCP/IP协议的网络通讯功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

猎羽

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

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

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

打赏作者

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

抵扣说明:

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

余额充值