esp32 开发入门 idf 转载 及启动过程导致几个io不建议使用的原因
虽然ardruino开发很简单,但是官方的idf毕竟是源泉,esp32没有公开他的寄存器,其实用arduino c++ 跟idf 的官方库已经差不多了,arduino函数也就封装了下
开源一小步之 ESP32 开发指南
链接:https://pan.baidu.com/s/1n1WW3Lm2rwYchBgchPQjTA
提取码:1243
开源地址:https://github.com/HX-IoT
系统 first-stage bootload 启动,对于系统的 first-stage bootloader,其主要任
务是负责从 Flash 的地址 0X1000 开始加载 bootloader 镜像到 RAM 中。此工程源码在
esp-idf 的 component 目录下 bootloader/subproject/main/bootloader_start.c。
在 SoC 复位后,PRO CPU 将立即开始运行,执行复位向量代码,而 APP CPU 将保持复位。
在启动过程中,PRO CPU 执行所有初始化。call_start_cpu0 应用程序启动代码功能中的 APP
CPU 复位被取消置位。复位向量代码位于 ESP32 芯片掩码 ROM 中的地址 0x40000400,不能
修改。
从复位向量调用的启动代码通过检查 GPIO_STRAP_REG(gpio_reg.h 定义的)引导引脚
[GPIO0, GPIO2, GPIO4, MTDO, GPIO5]状态的寄存器来确定引导模式。
如果 GPIO0 和 GPIO2 同时为低电平,则会进入下载模式,等待串口通信信息。
如果 GPIO0 为高电平,则会进入 Flash 运行模式,启动 SPI 驱动,并加载 Flash
中的程序段。
所以这几个io口不建议接外设
本次启动 ESP32 可知道上次复位的原因,有以下几种可能。