ESP32 基础篇: 启动时 rst cause 和 boot mode

本文参考 ESP32 技术参考手册ESP32-WROOM-32 datasheet

简介

ESP32 启动时, ROM CODE 会读取 GPIO 状态和 rst cause 状态, 进而决定 ESP32 工作模式。
通过了解和掌握 rst causeboot mode, 有助于定位某些系统问题。

例如:
ESP32 启动时会有如下打印:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

ROM CODE 波特率为 115200

系统复位介绍和 ESP32 启动时 rst cause

系统复位介绍

系统提供三种级别的复位方式,分别是 CPU 复位内核复位系统复位
所有的复位都不会影响 MEM 中的数据。如图展示了整个子系统的结构以及每种复位方式:

在这里插入图片描述

  • CPU 复位:只复位 CPU 的所有寄存器。
  • 内核复位:除了 RTC,会把整个 digital 的寄存器全部复位,包括 CPU、所有外设和数字 GPIO。
  • 系统复位:会复位整个芯片所有的寄存器,包括 RTC。

大多数情况下, APP_CPUPRO_CPU 将被立刻复位,有些复位源只能复位其中一个。
APP_CPUPRO_CPU 的复位原因也各自不同:
当系统复位起来之后,
PRO_CPU 可以通过读取寄存器 RTC_CNTL_RESET_CAUSE_PROCPU 来获取复位源;
APP_CPU 则可以通过读取寄存器 RTC_CNTL_RESET_CAUSE_APPCPU 来获取复位源。

ESP32 启动时 rst cause

例如 ESP32 启动时会有如下打印:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

其中 rst 简单说明如下:

PROAPP复位方式注释
0x010x01芯片上电复位系统复位-
0x100x10RWDT 系统复位系统复位详见 ESP32 技术参考手册 WDT 章节
0x0F0x0F欠压复位系统复位详见 ESP32 技术参考手册 Power Management 章节
0x030x03软件系统复位内核复位配置 RTC_CNTL_SW_SYS_RST 寄存器
0x050x05Deep Sleep Reset内核复位详见 ESP32 技术参考手册 Power Management 章节
0x070x07MWDT0 全局复位内核复位详见 ESP32 技术参考手册 WDT 章节
0x080x08MWDT1 全局复位内核复位详见 ESP32 技术参考手册 WDT 章节
0x090x09RWDT 内核复位内核复位详见 ESP32 技术参考手册 WDT 章节
0x0B-MWDT0 CPU 复位CPU 复位详见 ESP32 技术参考手册 WDT 章节
0x0C-软件 CPU 复位CPU 复位配置 RTC_CNTL_SW_APPCPU_RST 寄存器
-0x0BMWDT1 CPU 复位CPU 复位详见 ESP32 技术参考手册 WDT 章节
-0x0C软件 CPU 复位CPU 复位配置 RTC_CNTL_SW_APPCPU_RST 寄存器
0x0D0x0DRWDT CPU 复位CPU 复位详见 ESP32 技术参考手册 WDT 章节
-0xEPRO CPU 复位CPU 复位表明 PRO CPU 能够通过配置 DPORT_APPCPU_RESETTING 寄存器单独复位 APP CPU

ESP32 上电 boot mode

ESP32 上电时会判断 strapping 管脚的状态, 并决定 boot mode.
例如常见的两种上电打印:

下载固件模式:

rst:0x1 (POWERON_RESET),boot:0x3 (DOWNLOAD_BOOT(UART0/UART1/SDIO_REI_REO_V2)) 

芯片运行模式:

rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)

ESP32-WROOM-32 为例说明。
boot 值由 strapping 管脚 的 6 位值 [MTDI, GPIO0, GPIO2, GPIO4, MTDO, GPIO5] 共同决定。

下面是关于 Stripping 管脚 相关说明:
在这里插入图片描述
说明:

  • 固件可以通过配置一些寄存器比特位, 在启动后改变“内置 LDO (VDD_SDIO) 电压”和“SDIO 从机信号输入输出时序”的设定。
  • 因为模组内置了 3.3 V SPI flash, 所以上电时不能将 MTDI 置 1。
  • 12
    点赞
  • 98
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值