- esp-hosted SDK
esp-hosted 方案介绍
-
esp-hosted 方案主要为
Linux
或者MCU
提供无线连接功能(WiFi
或者BT/BLE
) -
esp-hosted 解决方案包含了 esp-hosted FG 和 esp-hosted NG 两套方案
-
与传统 WiFi 网卡的区别在于
ESP 设备端
需要烧录固件,而且对于FG 方案
来说, WiFi 相关的指令需要自定义命令
esp-hosted 框架
- esp-hosted FG 系统架构
-
esp-hosted NG 系统架构
-
esp-hosted FG和 esp-hosted NG 的区别
传输接口
- esp-hosted FG 传输接口
- esp-hosted NG 传输接口
几种联网方案的区别
使用方法
软硬件设置
- esp-hosted FG 方案
- esp-hosted NG 方案
测试使用
- esp-hosted FG 方案
- esp-hosted NG 方案
通信速率
- 通信速率 - NG
- 通信速率 - FG
吞吐量性能
- 参见
esp-hosted
吞吐量 说明
吞吐优化的一些 debug 方法
- 排查缓冲区瓶颈
各个 TASK 之间一般都是通过 queue
来进行缓冲,如果速率比较低,则某个 queue
一般存在堵塞现象,可以在
queue
的 send
接口加入毫秒级的超时机制,在超时之后将对应的 TASK 打印出来。
- 分析 SDIO 线上空闲时间
当出现吞吐低的时候, SDIO 线上肯定会出现大片的空闲时间。我们可以额外添加几个 GPIO 管脚,在传输的各个
TASK 不同阶段使用 GPIO 管脚打点,此时也能准确的排查堵塞点。如果并行化优化的很好,那么此时线上这些 GPIO
打点应该和 SDIO 传输会同时出现。
当吞吐率高时, SDIO 线上的利用率也会比较高。通过分析 SDIO 线上空闲时间,可以确定线上是否还存在优化空
间。
esp-hosted 问题分析方法
-
确定使用的芯片和外设接口 (比如使用 ESP32 芯片,SDIO 外设)
-
esp-hosted
的版本 (使用FG
还是NG
,优先建议使用tag
版本),Linux 驱动与芯片固件版本匹配 -
内核打印(通过
dmesg
命令)以及芯片 LOG -
内核打印看到
WLAN
的信息,说明硬件通信正常,否则需要排查硬件和前面的初始化操作
-
测试
WiFi
命令是否可以通信,正常说明/dev/esps0
没问题 -
测试
DHCP
如果异常,则测试使用静态IP
,正常说明DHCP Client
存在问题