当前位置:网站首页>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测试结果如下:
边栏推荐
- 转正菜鸟前进中的经验(废话)之谈 持续更新中... ...
- npm搭建本地服务器,直接运行build后的目录
- Flink 状态与容错 ( state 和 Fault Tolerance)
- SharedPreferences and SQlite database
- It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
- redis persistence
- Facial Motion Capture 调研
- [Go through 11] Random Forest and Feature Engineering
- 全尺度表示的上下文非局部对齐
- 6k+ star,面向小白的深度学习代码库!一行代码实现所有Attention机制!
猜你喜欢
BroadCast Receiver(广播)详解
[Go through 9] Convolution
flink yarn-session的两种使用方式
[Database and SQL study notes] 8. Views in SQL
解决:Unknown column ‘id‘ in ‘where clause‘ 问题
Kubernetes常备技能
【NFT开发】设计师无技术基础保姆级开发NFT教程在Opensea上全套开发一个NFT项目+构建Web3网站
大型Web网站高并发架构方案
CVPR 2022 | 70% memory savings, 2x faster training
哥廷根大学提出CLIPSeg,能同时作三个分割任务的模型
随机推荐
学习总结week2_1
flink中文文档-目录v1.4
11%的参数就能优于Swin,微软提出快速预训练蒸馏方法TinyViT
Spark ML学习相关资料整理
Machine Learning (1) - Machine Learning Fundamentals
spingboot 容器项目完成CICD部署
大型Web网站高并发架构方案
Flink Broadcast 广播变量
el-table鼠标移入表格改变显示背景色
【Pytorch学习笔记】8.训练类别不均衡数据时,如何使用WeightedRandomSampler(权重采样器)
Distributed and Clustered
SSL 证书签发详细攻略
ECCV2022 | RU & Google propose zero-shot object detection with CLIP!
Thread handler handle IntentServvice handlerThread
门徒Disciples体系:致力于成为“DAO世界”中的集大成者。
Flink 状态与容错 ( state 和 Fault Tolerance)
初识机器学习
It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
ES6基础语法
【数据库和SQL学习笔记】10.(T-SQL语言)函数、存储过程、触发器