当前位置:网站首页>CH32V307 LwIP移植使用
CH32V307 LwIP移植使用
2022-08-05 05:15:00 【偶可不乖呢】
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,该板子上网口灯并未连线,只引出来插针ELED1和ELED2,需要用杜邦线接上。例程里使用的是PB8和PB9引脚作为网口灯控制引脚。
移植例程支持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测试结果如下:
边栏推荐
猜你喜欢
【After a while 6】Machine vision video 【After a while 2 was squeezed out】
CAP+BASE
Pandas(五)—— 分类数据、读取数据库
flink实例开发-详细使用指南
【数据库和SQL学习笔记】5.SELECT查询3:多表查询、连接查询
盘点关于发顶会顶刊论文,你需要知道写作上的这些事情!
The fourth back propagation back propagation
【Pytorch学习笔记】9.分类器的分类结果如何评估——使用混淆矩阵、F1-score、ROC曲线、PR曲线等(以Softmax二分类为例)
Flink Broadcast 广播变量
Flutter 3.0升级内容,该如何与小程序结合
随机推荐
IDEA 配置连接数据库报错 Server returns invalid timezone. Need to set ‘serverTimezone‘ property.
day9-字符串作业
Mesos learning
Calling Matlab configuration in pycharm: No module named 'matlab.engine'; 'matlab' is not a package
学习总结week2_5
flink部署操作-flink on yarn集群安装部署
[Over 17] Pytorch rewrites keras
JSX基础
ES6 新特性:Class 的继承
解决端口占用问题
dataframe 常用操作
flink实例开发-详细使用指南
CVPR 2022 | 70% memory savings, 2x faster training
js实现数组去重
哥廷根大学提出CLIPSeg,能同时作三个分割任务的模型
el-pagination分页分页设置
Spark ML学习相关资料整理
[Practice 1] Diabetes Genetic Risk Detection Challenge [IFLYTEK Open Platform]
盘点关于发顶会顶刊论文,你需要知道写作上的这些事情!
vscode要安装的插件