您尚未登录。

楼主 #1 2020-12-18 18:40:58

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

esp32s2移植VSF,顺便跑起USB主机协议栈

最近一段时间入坑esp32s2,移植了vsf内核,移植了dwcotg的USB主从机驱动。
虽然不能说所有坑都填了,不过也至少很多东西可以跑起来了。

先秀一些实际效果(USB主机相关),整理好代码后,提交到github

bcm20702蓝牙狗,配合btstack,链接PS4蓝牙手柄:
esp32s2_bthci.png

直接USB驱动PS4手柄:
esp32s2_ds4.png

使用U盘:
esp32s2_msc.png

使用libusb控制设备:
esp32s2_libusb.png

离线

楼主 #7 2020-12-19 21:53:42

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

david 说:

你这usb追踪工具是啥

LeCroy的USB协议分析仪,很早以前买的东西了

离线

楼主 #8 2020-12-19 21:54:49

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

esp32s2的USB主机模式,应该没什么人用,所以官方的SDK里都不支持
这个我们也就只是玩玩而已,估计也没时间去准备文档,不过驱动代码都会开源

离线

楼主 #10 2020-12-22 12:37:46

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

msr06rr 说:

楼主牛逼,建议给官方提PR...
SDK暂时没有host驱动,但是从这里发布的进度来看似乎是有这个计划的:https://esp32.com/viewtopic.php?f=10&t=14532


原厂估计不会理我吧。。。。

后面几个wifi芯片,我们都会玩玩,同样的平台,同样的开发方式

esp32s2的估计这周提交,前两天优化了设备插拔的部分。

离线

楼主 #12 2020-12-23 12:49:53

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

阿黄 说:

vsf是啥?能介绍一下吗?

这个是我们自己做的系统框架,事件驱动的抢占式多任务内核,外加各种模块/驱动。
甚至还有一个linux子系统模块,可以用于编译一些linux的应用代码。
不过,文档啥的还都没完善,所以也就秀一下。

离线

楼主 #14 2020-12-24 12:11:37

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

xiaohui 说:

是的,更新会提交到这里,不过,目前还没更新。之前的更新只是内核的移植,USB移植并不完整

离线

楼主 #19 2020-12-24 19:24:34

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

armstrong 说:

真心话,看vsf代码就是一种享受!

谢谢,虽然目前还有一些没有完全统一,不过VSF代码有非常严格的标准,很多细节都做了规定。
不过,也还是有不少人说VSF的代码其实并不好,毕竟不同人的口味不同

离线

楼主 #20 2020-12-24 19:27:40

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

david 说:

支持u盘吗 文件系统可以用linux的吗 还是只有fat

USB主机里,有MSC驱动,可以支持U盘。
文件系统是我们自己写的,因为里面其实并不是linux,esp32s2也跑不起来linux。
截图里,虽然写的是linux,这个只是我们自己写的linux子系统,为了编译一些Linux应用,模拟出linux的一些API和库而已。
还有几个其他的文件系统,比如vfs(用于建立虚拟目录和文件)等等

离线

楼主 #21 2020-12-25 13:51:53

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

已经提交,工程位于source/example/template/project/cmake/esp32s2下
编译的话,需要定义一个全局的环境变量VSF_PATH,设置为clone的vsf的目录
然后,使用esp的方式直接编译即可。

如果编译过程总,提供btstack文件找不到的话,做如下修改:
1. main/CMakeLists.txt中,去掉btstack的.c,以及去掉btstack_demo.c
2. source/example/template/config/vsf_usr_cfg/vsf_usr_cfg_esp32s2.h里,APP_USE_BTSTACK_DEMO配置为DISABLED

esp32的windows环境下,遇到一些问题,就是如果参与编译的文件太多,连接会出错,官方没有提供任何解决方案。
linux环境下没问题。
解决方法,去掉一些模块,修改source/vsf/component/CMakeLists.txt,去掉3rd-parth、crypto、debugger、tcpip、ui。当然,实际可能不需要去掉这么多

离线

楼主 #24 2021-12-20 14:49:01

vsf
会员
注册时间: 2020-03-03
已发帖子: 59
积分: 94

Re: esp32s2移植VSF,顺便跑起USB主机协议栈

xiaoqianxiansheng 说:

有USB的wifi固件吗

官方应该有现成的吧

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn