esp-hosted-mcu 上手体验

/ 0评 / 0

这是一个把ESP32作为从机,MCU作为主机,可以当普通蓝牙WIFI模块用.当然也可以Linux作为主机,ESP32作为网卡,这里只讨论MCU情况.

我这里用的Host是ESP32S3,Slava是ESP32C3,其中ESP32S3当作无WiFi功能使用.

首先配置好ESP-IDF开发环境,导入WiFi iperf的例子,因为是当作无WiFi功能用,所以还要删除所有和WiFi相关配置.

路径:[ESP SDK路径]\[IDF版本]\esp-idf\components\soc\esp32s3\include\soc\Kconfig.soc_caps.in

创建工程后添加esp-hosted相关的包.

idf.py add-dependency "espressif/esp_wifi_remote"
idf.py add-dependency "espressif/esp_hosted"
idf.py set-target esp32s3

然后到Menuconfig里配置SPI速度,因为用的是杜邦线连接,所以速度也上不去.等调好可以后续做板子.

IO接线默认的值可以看官方文档,当然都是可以调整的.

https://github.com/espressif/esp-hosted-mcu/blob/main/docs/spi_full_duplex.md

在主机操作扫描

实际上扫描任务是被从机响应

那么一个最实际的问题,移植到其他MCU,主要是移植实现hosted_osi_funcs_t这个结构,这个结构还比较大.位于这个路径.

esp_hosted\host\port\os_wrapper.c

看起来也是条件编译,但是对于移植后的结果,可能就需要稍微修改了,毕竟不是所有编译系统都能这么方便的做条件编译传递.

库对应的是 https://github.com/espressif/esp-hosted 的 main 分支.

而这个库只是套用一层包装 https://github.com/espressif/esp-wifi-remote

esp-wifi-remote 最终会调用esp-hosted库的实现,不多说,看图说明.

但是移植还是比较头疼的,主要是依赖了太多的ESP的组件.

目前还没怎么分析,只知道他需要创建4个任务,SPI_TX,SPI_RX,RPC_TX,RPC_RX,然后通过各种信号量发来发去.

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注