当前位置:网站首页>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-examples
https://github.com/smartmx/lwip-study-examples
例程中修改了官方提供的my_eth_driver.c,改用lwip_task.c。
其中使用了tiny-macro-os进行任务调度,可以实现异步处理以太网,把lwip作为一个线程在运行。
tiny-macro-os
https://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测试结果如下:

边栏推荐
- MySql之索引
- 【Pytorch学习笔记】11.取Dataset的子集、给Dataset打乱顺序的方法(使用Subset、random_split)
- flink on yarn 集群模式启动报错及解决方案汇总
- flink实例开发-详细使用指南
- 发顶会顶刊论文,你应该这样写作
- flink部署操作-flink standalone集群安装部署
- MaskDistill - Semantic segmentation without labeled data
- el-pagination左右箭头替换成文字上一页和下一页
- It turns out that the MAE proposed by He Yuming is still a kind of data enhancement
- 【数据库和SQL学习笔记】9.(T-SQL语言)定义变量、高级查询、流程控制(条件、循环等)
猜你喜欢

【数据库和SQL学习笔记】7.SQL中的插入(INSERT)、删除(DELETE)、更新(UPDATE)

BroadCast Receiver(广播)详解

CVPR最佳论文得主清华黄高团队提出首篇动态网络综述

Calling Matlab configuration in pycharm: No module named 'matlab.engine'; 'matlab' is not a package

AIDL详解

A deep learning code base for Xiaobai, one line of code implements 30+ attention mechanisms.
![[Practice 1] Diabetes Genetic Risk Detection Challenge [IFLYTEK Open Platform]](/img/10/7aa3153e861354178f048fb73076f7.png)
[Practice 1] Diabetes Genetic Risk Detection Challenge [IFLYTEK Open Platform]

【Pytorch学习笔记】9.分类器的分类结果如何评估——使用混淆矩阵、F1-score、ROC曲线、PR曲线等(以Softmax二分类为例)

怎么更改el-table-column的边框线

机器学习(一) —— 机器学习基础
随机推荐
el-pagination分页分页设置
【论文精读】Rich Feature Hierarchies for Accurate Object Detection and Semantic Segmentation(R-CNN)
【数据库和SQL学习笔记】9.(T-SQL语言)定义变量、高级查询、流程控制(条件、循环等)
BFC详解(Block Formmating Context)
AWS 常用服务
02.01-----The role of parameter reference "&"
Calling Matlab configuration in pycharm: No module named 'matlab.engine'; 'matlab' is not a package
学习总结week2_5
Thread handler handle IntentServvice handlerThread
Distributed and Clustered
Flutter 3.0升级内容,该如何与小程序结合
原来何恺明提出的MAE还是一种数据增强
Service
Flink Broadcast 广播变量
学习总结week3_3迭代器_模块
day6-列表作业
Day1:用原生JS把你的设备变成一台架子鼓!
大型Web网站高并发架构方案
【数据库和SQL学习笔记】6.SELECT查询4:嵌套查询、对查询结果进行操作
Mysql-连接https域名的Mysql数据源踩的坑