ESP-IDF编程概述

应用程序启动流程

本文将会介绍esp32上电后到最终执行app_main函数之前所经历的步骤(即启动流程),宏观上可以分成3个步骤:

  1. 第一阶段的引导程序被固化在了ESP32内部的ROM中,它的作用主要是加载flash的某个偏移地址(比如0x1000)处的程序到RAM(包括IRAM和DRAM)中运行,这段程序也被称为第二阶段的引导程序
  2. 第二阶段的引导程序会从flash中读取分区表主程序镜像文件,其中主程序镜像文件包括了RAM段和被flash高速缓存映射后的只读段。
  3. 主程序镜像开始运行后会开启第二个CPU,然后打开FreeRTOS的调度器。

以上过程将在下面进行详细阐述。

第一阶段引导程序

SoC复位后,

第二阶段引导程序

启动应用程序

应用程序内存布局

指令内存

IROM(code executed from Flash)

实时时钟快速内存

数据内存

数据存储

实时时钟慢速内存

支持DMA的内存