乐鑫ESP32-C3项目(9)- 上电启动流程的简要分析

本文详细介绍了ESP32-C3芯片的上电启动流程,包括一级引导程序和二级引导程序的角色。一级引导程序根据启动模式加载二级引导程序,二级引导程序加载分区表信息和主程序到RAM。通过分析启动流程,理解了固件在flash中的分布以及如何通过ESP-IDF工具进行监控和调试。
摘要由CSDN通过智能技术生成

参考资料:

技术规格书

技术参考书

调试openocd手册

应用程序的启动流程 - ESP32-C3 - — ESP-IDF 编程指南 latest 文档

一,芯片复位运行的流程

1,上电复位执行一级引导程序(固化在芯片ROM,无法修改)

2,一级引导程序工作:

根据芯片boot启动模式判断是否SPI,或下载启动模式

   如果是spi启动模式,则从flash 0x0处加载二级引导程序到IRAM中运行。

   如果是下载启动模式,则等待UART0/USB(jtag)接口

  

Boot启动模式

获取bootstrap 3个引脚的状态(寄存器GPIO_STRAP_REG 0x0038 ):

GPIO2 GPIO8 GPIO9(弱上拉)

 1          x                 1                                 SPI启动 (加载flash中的程序)

 1          1                 0                                 下载启动 模式(UART0 或 USB )

 

Note: 启动时,一般是将程序加载到IRAM运行;但是 寄存器(地址:0x42000000)= 0xaebd041d时,直接在flash运行.

eFuse存储器控制一级引导程序启动打印:

eFuse 的 EFUSE_UART_PRINT_CONTROL 

=0 默认,打印

=1 GPIO8=0 上电打印 GPIO8=1 上电不打印

=2 GPIO8=1 上电打印 GPIO8=0 上电不打印

=3 不打印

3,二级引导程序: 从flash加载分区表信息,加载主程序(app_main)到RAM,并处理主程序所有数据和代码段,flash高速映射只读段(从flash运行时)。

二级引导程序路径:(build/bootloader/bootloader.bin)

二,分析启动流程相关信息

0,分析前准备工作

0.1 硬件连接

1,开发板 USB-jtag 接电脑 USB

2,开发板UART0 接 USB-TTL, 再接 电脑USB (UART0是ESP32C2调试信息默认输出接口。

0.2 打开三个终端:helloworld项目终端,openOCD终端,telnet终端。

开始分析:

获取固件信息(二级引导程序、

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值