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
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
STMicroelectronics的STM32 F407微控制器被广泛应用于物联网设备和嵌入式系统。为了让这些设备连接到互联网,往往需要将LWIP网络协议栈移植到STM32 F407上。LWIP是一个轻量级TCP/IP(传输控制协议/互联网协议)协议栈,适用于小型嵌入式系统,具有占用资源少、适应不同硬件平台等优点。 在将LWIP移植到STM32 F407之前,需要先获取STM32 F4的开发板以及一个合适的LWIP协议栈源代码。在移植过程中,需要根据硬件平台和应用需求进行相关的配置。首先需要配置LWIP的IP地址、子网掩码、网关等网络参数,然后根据应用需求选择和配置TCP或UDP协议。移植过程中需要根据硬件资源来进行内存和堆栈大小的配置,同时还需要根据应用需求进行其他的配置。 对于STM32 F407,可选择使用FreeRTOS进行操作系统的支持。在移植过程中,需要将LWIP和FreeRTOS进行整合,调整任务优先级和时间片长度等参数,以实现系统的稳定性和性能。 最后,需要进行移植后的测试和验证。在测试中,需要使用网络调试工具对连接性、数据传输等进行测试。如果存在问题,需要对移植过程进行进一步调试和优化,以提高系统的可靠性和性能。 总之,STM32 F407移植LWIP需要根据硬件平台和应用需求进行适当的配置和调整,并进行充分的测试和验证,以确保系统的稳定性和性能。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值