Some checks failed
Build / idf-build (push) Has been cancelled
适配ESP-IDF v6.0编译 补充项目相关文档 * 修复16处头文件缺失、flash配置错误、WiFi断开原因码兼容问题 * 新增ESP-IDF v6.0迁移适配文档 * 更新变更日志,补充v1.0.0功能清单及v1.1.0版本规划 * 整理讨论记录,新增v6.0适配及国内大模型接入内容
83 lines
3.0 KiB
Markdown
83 lines
3.0 KiB
Markdown
# 讨论记录
|
||
|
||
---
|
||
|
||
## 讨论:ESP-IDF v6.0 编译适配
|
||
|
||
**日期**:2026-03-31
|
||
**目标**:解决 ESP-IDF v6.0 编译失败问题,完成固件烧录
|
||
|
||
### 问题清单
|
||
|
||
#### 1. Flash 大小配置错误
|
||
- **错误**:分区表需要 16MB,但 sdkconfig 配置为 2MB
|
||
- **修复**:`sdkconfig` 中 `CONFIG_ESPTOOLPY_FLASHSIZE` 改为 16MB
|
||
|
||
#### 2. WiFi 断开原因码未定义
|
||
- **错误**:`WIFI_REASON_ASSOC_EXPIRE` 等符号在 v6.0 中未定义
|
||
- **修复**:`wifi_manager.c` 中所有 reason code 添加 `#ifdef` 保护
|
||
|
||
#### 3. CMakeLists.txt 缺少源文件
|
||
- **错误**:`llm_provider.c` 未加入编译列表,导致链接错误
|
||
- **修复**:添加 `ota/ota_manager.c` 到 SRCS
|
||
|
||
#### 4. 头文件缺失(共 16 处)
|
||
| 文件 | 缺失头文件 | 原因 |
|
||
|------|-----------|------|
|
||
| `cli/serial_cli.c` | `llm/llm_provider.h` | `llm_provider_set_api_key` |
|
||
| `llm/llm_provider.c` | `esp_http_client.h` | `esp_http_client_set_header` |
|
||
| `bus/message_bus.c` | `freertos/FreeRTOS.h`, `freertos/queue.h` | `xQueueCreate`, `QueueHandle_t` |
|
||
| `wifi/wifi_manager.c` | `esp_event.h` | `esp_event_handler_instance_register` |
|
||
| `wifi/wifi_manager.c` | `freertos/FreeRTOS.h`, `freertos/task.h`, `freertos/event_groups.h` | `xEventGroupCreate`, `vTaskDelay` |
|
||
| `ota/ota_manager.c` | `esp_system.h` | `esp_restart` |
|
||
| `channels/telegram/telegram_bot.c` | `freertos/FreeRTOS.h`, `freertos/task.h` | `xTaskCreatePinnedToCore`, `vTaskDelay` |
|
||
| `tools/tool_registry.c` | `<stdlib.h>` | `free()` |
|
||
| `proxy/http_proxy.c` | `<sys/time.h>` | `struct timeval` |
|
||
| `gateway/ws_server.c` | `<stdint.h>` | `uint8_t` |
|
||
|
||
### ESP-IDF v6.0 API 兼容性验证
|
||
|
||
以下 API 在 v6.0 中**仍然存在**,无需修改:
|
||
- `esp_spiffs_info()` ✅
|
||
- `esp_websocket_client_send_bin()` ✅
|
||
- `esp_tls_set_conn_sockfd()` / `esp_tls_set_conn_state()` ✅
|
||
- `esp_console_new_repl_uart()` / `esp_console_new_repl_usb_serial_jtag()` ✅
|
||
- `esp_https_ota()` + `esp_https_ota_config_t` ✅
|
||
- `esp_wifi_set_config()` ✅
|
||
|
||
### 烧录说明
|
||
|
||
ESP32-S3 使用 **USB 口**(内置 USB Serial/JTAG 控制器)烧录:
|
||
```powershell
|
||
idf.py -p COMx flash monitor
|
||
```
|
||
- 插 USB 口(标记为 `USB`),不是 UART 口
|
||
- 如遇连接失败,按住 BOOT 键再插线进入下载模式
|
||
|
||
---
|
||
|
||
## 讨论:增加国内大模型厂商接入
|
||
|
||
**日期**:2026-03-31
|
||
**目标**:为 MimiClaw 增加硅基流动和火山方舟(豆包模型)接入
|
||
|
||
### 项目现状
|
||
- 当前支持:Anthropic (Claude)、OpenAI (GPT)
|
||
- 运行平台:ESP32-S3,纯 C 语言
|
||
- 交互方式:Telegram 机器人
|
||
|
||
### 国内厂商 API 兼容性
|
||
- **硅基流动**:OpenAI 兼容,Base URL `https://api.siliconflow.cn/v1`
|
||
- **火山方舟**:OpenAI 兼容,Base URL `https://ark.cn-beijing.volces.com/api/v3`
|
||
|
||
### 实现方案
|
||
由于两者都提供 OpenAI 兼容 API,可复用现有 OpenAI 集成代码,只需:
|
||
1. 修改 Base URL
|
||
2. 调整认证方式(Bearer Token)
|
||
3. 处理模型名称规范
|
||
|
||
### 待解决问题
|
||
1. 认证方式差异确认
|
||
2. 模型名称规范
|
||
3. 工具调用格式兼容性验证
|