chore: 精简 project_rules 规则说明
This commit is contained in:
42
.trae/rules/project_rules.md
Normal file
42
.trae/rules/project_rules.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
alwaysApply: false
|
||||
description: esp32嵌入式开发生效
|
||||
---
|
||||
# ESP32-C3 ESP-IDF 开发规则
|
||||
|
||||
仅在 ESP32 / ESP-IDF 相关开发中参考,保留关键结论如下:
|
||||
|
||||
## 1. HTTP Server
|
||||
|
||||
- `sdkconfig.defaults` 至少包含:
|
||||
- `CONFIG_HTTPD_MAX_REQ_HDR_LEN=1024`
|
||||
- `CONFIG_HTTPD_MAX_URI_LEN=512`
|
||||
- 修改 `sdkconfig.defaults` 后,如已有 `sdkconfig`,需同步处理并重新编译。
|
||||
- `httpd` 任务栈建议设为 `8192`。
|
||||
- `httpd_req_recv()` 读取 POST 数据必须循环收完,按 `content_len` 分配缓冲区,并在结束后释放内存。
|
||||
|
||||
## 2. 表单处理
|
||||
|
||||
- 所有 `application/x-www-form-urlencoded` 表单参数必须先做 URL 解码再使用。
|
||||
- 应封装统一的 `url_decode()` / `get_param()` 工具函数。
|
||||
- 禁止直接用 `strstr` + `strchr` 手动截取参数值。
|
||||
|
||||
## 3. WiFi 连接
|
||||
|
||||
- 不要硬编码 `WIFI_AUTH_WPA2_PSK`,优先使用兼容性更好的认证模式。
|
||||
- 空密码时使用 `WIFI_AUTH_OPEN`。
|
||||
- 启动时仅在 SSID 和密码都有效时尝试连接,否则进入配网模式。
|
||||
- 日志中输出断开原因和密码长度,不输出密码明文。
|
||||
|
||||
## 4. 初始化顺序
|
||||
|
||||
- 必须按以下顺序初始化:
|
||||
1. `nvs_flash_init()`
|
||||
2. `esp_netif_init()`
|
||||
3. `esp_event_loop_create_default()`
|
||||
4. `esp_wifi_init()`
|
||||
- 禁止在 `esp_wifi_init()` 之后再初始化 NVS。
|
||||
|
||||
## 5. 配网模式
|
||||
|
||||
- 配网阶段使用 `WIFI_MODE_AP`,不要使用 `WIFI_MODE_APSTA`。
|
||||
Reference in New Issue
Block a user