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

本文详细解析了ESP8266在启动时如何根据rstcause和bootmode确定工作模式,阐述了不同复位原因及bootmode的含义,对于理解和解决ESP8266系统问题具有指导意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

简介

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

ROM CODE 波特率为 74880.

ESP8266 启动时 rst cause

ESP8266 启动时会有如下打印:

ets Jan 8 2013, rst cause:1, boot mode:(5,7)

其中 rst cause 说明如下:

枚举定义意义
0NO_MEAN无意义
1VBAT_REST上电复位(电源重启)
2EXT_SYS_RESET外部复位 (deep-sleep 醒来)
3SW_RESET软件复位
4WDT_RESET硬件看门狗复位
5DEEPSLEEP_TIMER_RESET/
6DEEPSLEEP_POWER_ON_RESET/

Notes:
软件 WDT 重启或者软件复位都会维持上次重启状态. 比如第一次是电源重启, rst cause 为 1, 软件复位后 rst cause 仍然为 1.


ESP8266 上电 boot mode

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

ets Jan 8 2013,rst cause:1, boot mode:(3,2)

其中 boot mode 说明如下:

  • 第一个值代表当前 boot 模式
  • 第二个值代表 SDIO/UART 判断

boot modestrapping 管脚的 3 位值 [GPIO15, GPIO0, GPIO2] 共同决定. 如下表所示:

boot modeStrapping 管脚的 3 位值
[GPIO15, GPIO0, GPIO2]
SDIO/UART 判断意义
0[0, 0, 0]/remap boot
1[0, 0, 1]/UART boot
2[0, 1, 0]/jump boot
3[0, 1, 1]/fast flash boot
4[1, 0, 0]2SDIO lowspeed V1 UART boot
5[1, 0, 1]2SDIO lowspeed v2 uart boot
6[1, 1, 0]2SDIO highspeed v1 uart boot
7[1, 1, 1]2SDIO highspeed v2 uart boot
4-7[1,0,0], [1,0,1], [1,1,0], [1,1,1]非 2SDIO boot

boot mode 4~7 为 SDIO 的不同的协议标准, 包括低速 (lowspeed) 和高速 (highspeed), 版本号(V1, V2)等, 但并非所有 MCU 都会同时支持这些标准。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值