CH32V307 LwIP移植使用

CH32V307是沁恒推出的通用单片机系列,功能很强,集成片上的10M以太网PHY芯片,官方提供的以太网并没有公开源码,只是以一个SOCKET以太网库的形式提供。目前也没有多少移植LWIP的例程公布。

LWIP版本为2.1.3,contrib包版本依旧为2.1.0。

本移植例程使用了raw api方式,移植过程过于复杂,所以直接放GITHUB下载链接

lwip-study-exampleshttps://github.com/smartmx/lwip-study-examples

例程中修改了官方提供的my_eth_driver.c,改用lwip_task.c。

其中使用了tiny-macro-os进行任务调度,可以实现异步处理以太网,把lwip作为一个线程在运行。

tiny-macro-oshttps://github.com/smartmx/tiny-macro-os自行修改时需要注意tiny-macro-os的任务调度api。

虽然手册上说CH32V307支持硬件校验和,但目前本人还未使用成功,所以不启用,使用软件计算。

2022年4月22日更新:可以实现硬件校验和。

网口灯是需要软件实现的,本人目前还没做处理,所以网口灯不亮。

2022年4月23日更新:增加网口灯,修改了lwip中的timeouts.c,增加网口灯的常驻定时器。

我自己手上的CH32V307的EVT电路板版本为CH32V307V-R1-1V0,该板子上网口灯并未连线,只引出来插针ELED1ELED2,需要用杜邦线接上。例程里使用的是PB8PB9引脚作为网口灯控制引脚。

移植例程支持DHCP和自己设置IP。通过lwipopt.h更改,设置LWIP_DHCP为1即启用dhcp服务,自动获取ip。

 如果LWIP_DHCP设置为0,默认IP地址修改在lwip_task.c中:

例程中带有一个野火编写的tcpecho.c提供的tcp服务器和lwip提供的lwiperf.c,用于测试。

测试如下图:

2022年4月22日更新:速度达到双向1m/s,基本跑满10M PHY的速度。

jperf测试结果如下:

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值