一、驱动移植
二、应用测试
1、修改 test_config.h 中的配置参数。
主要需要修改的参数如下
2、然后在 c_support 文件夹中运行 make命令 来编译 。
3、输入相关测试命令
sudo ./test.out [scan] [sta_connect] [sta_disconnect] [ap_start] [ap_vendor_ie] [sta_list] [ap_stop] [wifi_tx_power] [ota <Esp_binary_path>]
note: 1、中括号中的命令都是可选的,可以只输入一个或者多个的组合。具体实现看源码
2、sta_connect 后,用户需要运行 DHCP 客户端从外部 AP 获取 IP 地址。?
sudo dhclient ethsta0 -r
sudo dhclient ethsta0 -v
Command line argument | Operation |
---|
sta_connect | 将 ESP32 站连接到外部 AP,将 ESP32 的 MAC 地址分配给 ethsta0 | sta_disconnect | 断开 ESP32 与外部 AP 的连接并down ethsta0 接口 | ap_start | 启动 ESP32 softAP,将 ESP32 softAP 的 MAC 地址分配给 ethap0 | ap_stop | 停止ESP32 softAP 并down ethap0 接口 | scan | 扫描外部接入点 | sta_list | 列出连接到 softAP 的外部站点 | ap_vendor_ie | Set vendor information element for ESP32 softAP 为 ESP32 softAP 设置供应商信息元素 | wifi_tx_power | 设置 WiFi 最大发射功率并获取 WiFi 当前发射功率 | ota </path/to/ota_image.bin> | 使用本地 OTA 二进制文件执行 OTA 操作 |
三、测试代码梳理
1、测试代码的组织结构:
CC = gcc
CROSS_COMPILE :=
CFLAGS = -C -Wall
DIR_HOST_COMMON = $(PWD)/../../../host_common
DIR_COMMON = $(PWD)/../../../../common/
INCLUDE += -I$(DIR_HOST_COMMON)/include/
INCLUDE += -I$(DIR_COMMON)/protobuf-c/
INCLUDE += -I$(DIR_COMMON)/include/
SRC += $(DIR_COMMON)/protobuf-c/protobuf-c/protobuf-c.c
SRC += $(PWD)/platform_wrapper.c
SRC += $(DIR_COMMON)/esp_hosted_config.pb-c.c
SRC += $(DIR_HOST_COMMON)/transport_pserial.c
SRC += $(DIR_HOST_COMMON)/commands.c test_api.c
PWD := $(shell pwd)
all: test
test:
$(CROSS_COMPILE)$(CC) $(CFLAGS) $(INCLUDE) $(SRC) $(@).c -o $(@).out
stress:
$(CROSS_COMPILE)$(CC) $(CFLAGS) $(INCLUDE) $(SRC) $(@).c -o $(@).out
clean:
rm -f *.out *.o
2、调用框架
test.c? ?---->? test_api.c? ----->? ?command.c
说明:
1、test.c主要就是根据用户输入的命令,调用不同的测试逻辑,如int test_station_mode_connect(),测试逻辑的实现在test_api.c中实现
2、test_api.c中会调用command.c的函数和ESP32进行交互。command.c的函数说明见如下网址:
esp-hosted/c_api.md at master · espressif/esp-hosted · GitHub
3、代码流程
1、测试数据通路是否正常
const char* transport = "/dev/esps0";
esp_hosted_driver_handle.file_desc = open(transport,O_NONBLOCK|O_RDWR);//打开设备
buf = (uint8_t *)esp_hosted_calloc(1, DUMMY_READ_BUF_LEN);
count = read(esp_hosted_driver_handle.file_desc,(buf), (DUMMY_READ_BUF_LEN));//读数据
.......
esp_hosted_free(buf);//释放buffer
ret = close(esp_hosted_driver_handle.file_desc);//关闭设备
ref:
ESP-Hosted 入门介绍 &使用指南_Marchtwentytwo的博客-CSDN博客_esp32 hosted
esp-hosted/c_demo.md at master · espressif/esp-hosted · GitHub
|