PRO CPU:ESP32是双核CPU结构。两个CPU可以称为(CPU0和CPU1)或者(APP CPU和PRO CPU)。 GPIO_STRAP_REG:保存着bootstrap引脚的电平状态。(ESP32技术手册) RTC_CNTL_STORE6_REG :32 位通用保留寄存器。(读/写) 二级引导程序 在ESP-IDF 中,存放在 flash 的 0x1000 偏移地址处的二进制镜像就是二级引导程序。
系统复位启动后,PRO_CPU可通过读取RTC_CNTL_RESET_CAUSE_PROCPU寄存器来获取复位源;而APP_CPU则通过读取RTC_CNTL_RESET_CAUSE_APPCPU寄存器来获取。在ESP32启动时,会出现如下的复位原因打印:rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)其中,rst字段简单说明如下:x PRO | APP | 源 | 复...
Re: PRO AND APP CPUQuote by Sprite » Fri Dec 21, 2018 2:51 am Note that it's a legacy name. The initial design for the ESP32 called for an asymmetric multiprocessor setup, with CPU0 running all the PROtocol handling code, while the APPlication would run on CPU1. We changed that...
ESP32上电复位后的启动流程 1.首先是PRO CPU 激活:(ESP32 是一款双核的微控制器,分为 PRO CPU(通常为主 CPU)和 APP CPU) 在复位之后,PRO CPU 首先被激活,开始执行位于 ESP32 芯片掩膜 ROM 中的复位向量代码(复位向量代码是指在微控制器或其他类型的处理器中,在复位事件发生后首先执行的一段代码) 这个地...
在启动过程中,PRO CPU 会执行所有的初始化操作。APP CPU 的复位状态会在应用程序启动代码的 call_start_cpu0 函数中失效。复位向量代码位于 ESP32-S3 芯片掩膜 ROM 处,且不能被修改。复位向量调用的启动代码会根据 GPIO_STRAP_REG 寄存器的值来确定 ESP32-S3 的启动模式,该寄存器保存着复位后 bootstrap 引脚...
1.首先是PRO CPU 激活:(ESP32 是一款双核的微控制器,分为 PRO CPU(通常为主 CPU)和 APP CPU) 在复位之后,PRO CPU 首先被激活,开始执行位于 ESP32 芯片掩膜 ROM 中的复位向量代码(复位向量代码是指在微控制器或其他类型的处理器中,在复位事件发生后首先执行的一...
入口调用 componments/esp32/cpu_start.c中的call_start_cpu0函数, 此函数会调用 call_start_cpu1.执行后PRO CPU执行start_cpu0,APP CPU执行start_cpu1 最终会调用app_main函数 我们打开ESP32 SDK中的core文件夹,里面有个main.cpp文件,打开我们就知道,app_main调用了loopTask函数,loopTask会先调用setup函数,...
该选项存在于单核配置中,因为 RTC 快速内存只能由 PRO CPU 访问。 已经确定的是 RTC 快速内存将用作第一个动态存储范围,并且大多数启动,预调度程序代码/服务都将占据该范围。这样就不会因为内存的时钟速度(稍微慢一点)而影响应用程序代码的性能。 由于对该区域没有访问限制,因此从功能上我们以后将其称为 DRAM ...
Single factory app, no OTA Factory app, two OTA definitions 两个选项,都将出厂应用程序烧录至flash的0x10000偏移地址处,但是一个没有OTA分区,一个有OTA分区 它们都在0x10000 (64KB)偏移地址处存放一个标记为 “factory” 的二进制应用程序,且Bootloader将默认加载这个应用程序 ...
ESP32 总共有 71 个外部中断源。ESP32 中的 71 个外部中断源中有 67 个可以 分配给两个 CPU。 其余的 4 个外部中断源只能分配给特定的 CPU,每个 CPU 2 个。GPIO_INTERRUPT_PRO 和 GPIO_INTERRUPT_PRO_NMI 只可以分配给 PRO_CPU。 GPIO_INTERRUPT_APP 和 GPIO_INTERRUPT_APP_NMI 只可以分配给 APP_CPU...