DM9015网卡uip移植到stm32

本文介绍在STM32F103RCT6上移植优化uIP协议栈的过程,针对官方例程内存占用大、代码混乱的问题,进行裁剪优化,实现TCP原始报文处理,适用于嵌入式设备的网络通信。

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

DM9015网卡是用于嵌入式设备的某网卡,使用spi接口通讯。图片某宝偷的。

这个模块内部不带网络协议栈,像TCP/IP  UDP啥的都是没有的,需要自己编写或者,移植开源的协议栈。

我这边主要参考官方历程移植优化精简的uip移植。因为官方的历程占用内存太大了,编写混乱,关键还是写的http历程,

http没搞过,不懂那协议啊,只能自己一步步裁剪,只处理TCP原始报文

芯片:stm32f103RCt6

先看看移植需要的文件:

uip协议栈基本不用更改

tcp处理这块需要自己处理,我也是简单的写了一下回传数据,还有很多功能需要优化。

先做简单点会让程序清晰些,也便于理解

看看主函数的结构:

主函数写的很简单,也很清晰,注释写的都很详细,应该不用多讲。这里说一下uip_polling函数,因为里面的arp文件在其它文件里包含就会报错,只能在主函数引用,暂时还没找到原因,所以只能把函数写在主函数了。

my_tcp.h   也比较灵活,移植我这个只需要改这个文件就可以了,只需改网卡读取函数即可,主函数网卡初始化也做对应修改,

其它地方都不用动。

主函数里面加了应该20ms延时,这是为了测试当系统还有其它任务的时候,网卡的通讯速度。

具体要自己实测自己整个任务的时间周期,我这边测试主函数延时20ms时,网卡通讯周期可以达到50ms,

测试了2k数据交换没有发现掉包:

整体上还是很给力的,没源码可能比较懵,下面是源码:

https://download.youkuaiyun.com/download/hes_c/10622836

后面还会慢慢完善其它功能。

看看我工程的内存信息:sram只有3.5K,非常小了

下面是某官方给的历程内存信息:sram14.5k了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值