Files
ESP32_COMM/README.md
T
小龙虾 df27ef3a98 docs(readme): 更新项目文档并移除过时文件
- 添加详细的项目介绍,包括硬件平台、功能模块和目录结构
- 移除旧的 docs/README.md 和 docs/tasks.md 文件
- 更新 .gitignore 添加 .cache/ 目录
- 调整 CMakeLists.txt 依赖项顺序,添加 mbedtls
- 简化头文件包含,移除不必要的 esp_log.h 和 esp_netif_types.h 引用
2026-04-27 03:00:48 +08:00

69 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ESP32-C3 OTA Relay
ESP32-C3FH4 OTA 中继固件,通过 WiFi / BLE 接收上位机 OTA 固件包,通过 SPI 转发给下位机(GD32)。
## 硬件平台
- **芯片:** ESP32-C3FH4 (RISC-V, 单核)
- **Flash:** 4MB
- **编译工具链:** ESP-IDF v6.0, riscv32-esp-elf
## 功能模块
| 模块 | 描述 |
|------|------|
| `health_monitor` | 温度 + 电压 + WiFi RSSI 监控 |
| `ota_relay` | OTA 数据包接收与转发 |
| `wifi_ota` | WiFi OTA 服务器 (HTTP) |
| `ble_ota` | BLE OTA 服务器 (GATT) |
| `spi_master` | SPI 主站,与下位机通信 |
| `protocol` | CRC 校验 + AES 解密 |
## 目录结构
```
main/
├── CMakeLists.txt
├── core/main.cpp # 任务创建入口
├── relay/ota_relay.cpp # OTA 中继逻辑
├── transport/
│ ├── spi_master.cpp # SPI 主站
│ └── protocol.cpp # 协议层 (CRC/AES)
├── server/
│ ├── wifi_ota.cpp # WiFi OTA HTTP 服务器
│ └── ble_ota.cpp # BLE OTA GATT 服务器
└── monitor/
├── health_monitor.cpp # 健康监控
└── debug_log.cpp # UDP 调试日志
```
## 任务配置 (单核 ESP32-C3)
所有任务固定运行在 CPU 核 0:
| 任务 | 优先级 | 栈大小 | 说明 |
|------|--------|--------|------|
| health_mon | configMAX_PRIORITIES - 4 | 4096 | 健康监控 |
| ota_relay | configMAX_PRIORITIES - 2 | 8192 | OTA 中继 |
| wifi_ota | configMAX_PRIORITIES - 3 | 8192 | WiFi OTA |
| ble_ota | configMAX_PRIORITIES - 3 | 8192 | BLE OTA |
## 待确认参数
- AES-128 主密钥 (MASTER_KEY_HERE)
- 搅伴算法种子 (SCRAMBLE_CONST_HERE)
- 芯片唯一码 (CHIP_UID_HERE)
- OTA Service UUID (需与 APP 侧协商)
## 编译
```bash
idf.py set-target esp32c3
idf.py build
idf.py flash monitor
```
## 调试日志
UDP 输出到上位机,默认 IP: `DEBUG_LOG_IP`,端口: `DEBUG_LOG_PORT`。