ESP32的启动过程详解

发布时间:2023-12-13  

 是一种基于 ARM Cortex-M 处理器的 32 位微控制器,集成了 2.4GHz Wi-Fi 和蓝牙双模功能。 的启动过程可以分为以下三个阶段:

本文引用地址:
  • 一级引导程序:当 上电或复位后,PRO CPU 会立即开始运行,执行复位向量代码,而 APP CPU 仍然保持复位状态。 复位向量代码会检查 GPIO_STRAP_REG 寄存器的值,确定 ESP32 的启动模式,如 UART 下载模式、自定义启动模式等。如果是正常启动模式,程序会配置 SPI flash,然后尝试从 flash 的 0x1000 偏移地址处加载二级引导程序的二进制镜像。 程序会校验镜像的校验和,如果正确,就会跳转到镜像的入口点运行。

  • 二级引导程序:二级引导程序的源码可以在 ESP-IDF 的 components/bootloader 目录下找到。 二级引导程序会从 flash 的 0x8000 偏移地址处读取分区表,分区表包含了 flash 上不同分区的类型、偏移地址、大小等信息。 二级引导程序会寻找工厂分区和 OTA 应用程序分区,如果存在 OTA 应用程序分区,还会查询 otadata 分区,以确定应该引导哪个分区。 对于选定的分区,二级引导程序会从 flash 中逐段读取应用程序镜像,对于需要加载到 RAM 中的段,会将数据从 flash 复制到它们的加载地址处,对于需要从 flash 中运行的段,会通过配置 flash MMU,提供正确的映射。 一旦处理完所有段,二级引导程序会验证应用程序的完整性,如果使用了安全启动或 flash 加密功能,还会进行相应的验证和解密。最后,二级引导程序会跳转到应用程序镜像的入口点运行。

  • 应用程序启动:应用程序启动包含了从应用程序开始执行到 app_main 函数在主任务内部运行前的所有过程。 应用程序启动可以分为三个子阶段:端口初始化:这个阶段会初始化基本的 C 运行环境,配置 CPU 异常,初始化内部存储器,设置 CPU 时钟,如果配置了 PSRAM,还会使能 PSRAM。如果应用程序被配置为在多个内核上运行,还会启动另一个内核并等待其初始化。系统初始化:这个阶段会初始化软件服务和 FreeRTOS,包括堆栈、中断、任务、定时器、事件组、队列、信号量等。 还会初始化一些系统组件,如 NVS、SPI flash、日志、应用程序跟踪等。主任务运行:这个阶段会创建一个主任务,并在其中调用 app_main 函数,这是应用程序的入口函数,用户可以在这里编写自己的代码,实现各种功能和服务。


文章来源于:电子产品世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。

相关文章

    ESP32的启动过程详解; 是一种基于 ARM Cortex-M 处理器的 32 位微控制器,集成了 2.4GHz Wi-Fi 和蓝牙双模功能。 的启动过程可以分为以下三个阶段:本文......
    STM32单片机的调试方式 STM32单片机的启动流程详解;STM32单片机是意法半导体推出的一款基于ARM Cortex-M内核的32位微控制器,广泛应用于汽车电子、工业控制、消费......
    Windows CE的启动过程   一般嵌入式系统的引导过程如图1所示。其中引导加载程序(BootLoader)是系统加电后运行的第一段代码,主要是通过设置寄存器初始化硬件的工作方式,如设置时钟、中断......
    电机控制器生产工艺流程详解;原材料的选用要求 功率电阻要选用具有耐高温,工作温度范围宽的金属氧化膜电阻。 电解电容要选用高频、低阻,温度在105°C的情况下能连续工作2000小时。 线束......
    机静止。 b.松闸控制。启动过程中,当f>0.5Hz时,输出端子Y1与COM闭合→抱闸继电器线圈得电→电磁力将闸片吸开→转轴自由转动→电动机启动运行。 ......
    客文章中,微软解释了为何为安全产品提供内核级访问: 内核驱动程序允许系统范围内的可见性,并能够在启动过程早期加载,以检测启动套件和根套件等威胁,这些威胁可以在用户模式应用程序之前加载。 微软......
    我们更好的理解和操纵硬件底层。 STM32三种启动模式 下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存,这就是所谓的启动过程。 STM32上电或者复位后,代码......
    详解STM32启动过程;本章教程主要跟大家讲STM32H7的启动过程,这里的启动过程是指从CPU上电复位执行第1条指令开始(汇编文件)到进入C程序main()函数入口之间的部分。  启动过程......
    了导致Microsoft Edge在启动时或用户在地址栏输入或尝试打开新标签页时出现崩溃的问题。不再需要运行PowerShell脚本。 – 修复了在Windows 10应用程序(如Microsoft Edge)中触摸滚动过......
    要将其中的路径改为自己的工程路径和名称即可,有关于其具体意义和使用方式的说明可以查看c/c++插件的官方github userguid来学习使用。其中需要注意的是,由于我们的调试是在windows环境下使用mingw64来实现的,所以在调试的启动过程......

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>