c5_flasher

# C5 SDIO Flasher Example

ESP32-P4 通过 `ksdiy_c5_sdio_flasher` 给板载 ESP32-C5 烧录 ESP-Hosted 从机固件,并用 WiFi 扫描验证链路。

## 硬件

- **KSDIY ESP32-P4/C5 4.3 寸开发板**(P4 Host + C5 WiFi 协处理器)
- 默认引脚:RESET=54, BOOT=2, SDIO 14–19

## 准备 C5 固件

```powershell
cd examples/c5_flasher
powershell -File copy_c5_firmware.ps1
# 或手动复制 merge-bin 到 c5_fw/ESP32C5_V2.12.13_0X0.bin
```

## 编译烧录

```powershell
idf.py set-target esp32p4
idf.py build flash monitor
```

## 预期日志

**首次启动(空白 C5):**
```
Programming C5 over SDIO...
flash progress: ...
C5 coprocessor ready
WiFi verify OK, found N AP(s)
```

**再次启动(已烧录且版本匹配):**
```
NVS: C5 already flashed, version check only
Slave >= target, skip auto flash (Hosted stays up)
WiFi verify OK, found N AP(s)
```

## menuconfig

`Example configuration → C5 Flasher Example`:

| 选项 | 说明 |
|------|------|
| Run WiFi scan after C5 ensure | 烧录/跳过后做一次 AP 扫描 |
| Clear NVS flash mark on boot | 开发用,强制重新检查/烧录 |
| Drive GPIO20 high | P4C5 板电源升压 |

引脚与固件路径:`Component config → KSDIY C5 SDIO Flasher`

## 故障排查

| 现象 | 处理 |
|------|------|
| `Read file failed` | `c5_fw/` 内缺少 merge-bin |
| `SDIO init failed` | 确认 `CONFIG_SERIAL_FLASHER_PORT_SDIO=y` |
| `GPIO54 conflict` | 确保在 `esp_wifi_init()` 之前调用 `ensure()`,且使用最新组件(跳过路径保持 Hosted 连接) |
| WiFi scan 失败 | 检查 C5 固件版本与 ESP-Hosted 配置一致 |

To create a project from this example, run:

idf.py create-project-from-example "kevincoooool/ksdiy_c5_sdio_flasher=1.1.0:c5_flasher"

or download archive (~6.19 KB)