You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ESP32-C6如何通过运行中的应用程序进入第一阶段引导加载程序?

ESP32-C6 软件触发进入第一阶段引导加载程序的方法

问题说明

适用于ESP32-C3的通过RTC_CNTL_OPTION1_REG寄存器设置RTC_CNTL_FORCE_DOWNLOAD_BOOT位进入引导加载程序的方法,在ESP32-C6上完全不可用——编译时会报错rtc_cntl_reg.h: no such file or directory。根本原因是ESP32-C6移除了RTC_CNTL寄存器模块,原有的硬件控制逻辑已被替换。

解决方案

针对ESP32-C6,需通过SYSCON寄存器组或ESP-IDF封装函数实现软件触发,以下是两种可行方式:

方式1:直接操作寄存器

  1. 引入必要头文件:
    #include "soc/syscon_reg.h"
    #include "esp_system.h"
    
  2. 设置引导位并重启:
    // 配置强制下载引导模式
    REG_SET_BIT(SYSCON_BOOT_MODE_REG, SYSCON_FORCE_DOWNLOAD_BOOT);
    // 触发系统重启,重启后进入第一阶段引导加载程序
    esp_restart();
    

方式2:使用ESP-IDF封装函数(推荐)

这种方式无需直接操作寄存器,兼容性更强:

#include "esp_system.h"

// 设置重启原因提示为强制下载
esp_reset_reason_set_hint(ESP_RST_REASON_SW_FORCE_DOWNLOAD);
// 触发重启
esp_restart();

补充说明

  • SYSCON_FORCE_DOWNLOAD_BOOT是ESP32-C6专门用于软件触发引导加载程序的控制位,替代了ESP32-C3中的RTC_CNTL_FORCE_DOWNLOAD_BOOT。
  • 使用ESP-IDF封装函数的方式更适合跨ESP芯片平台开发,后续切换其他型号时代码改动更小。

内容的提问来源于stack exchange,提问作者Wizzard_Dr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 12:55:03