一步步带你分析 ESP32-C3 应用程序的启动流程

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第29天,点击查看活动详情

网上说明一大堆,基本是官网文档复制没有额外解释!
对于ESP32-C3的 risc-v 内核,是我选择他的原因之一,
了解芯片上电后的启动流程,有利于我们更加深入理解芯片。
复制代码

前言

对于ARM内核的STM32的启动流程,我以前的博文详细分析过,搞懂了STM32的启动流程对于芯片的使用和理解来说就会更上一个等级。现在我们新接触的 risc-v 内核的ESP32-C3,如果能够搞明白他的启动流程,就能更深的理解 ESP32-C3。

在写文章之前也看了很多网上的文章,然后官方的说明也看过了,网上绝大多数都是官网文档复制一遍,这倒没什么,毕竟官网权威,问题是,复制一遍过来没有做过多的解释,没有额外的分析,还写个原创,我真是服了。当然不排除我没看到的好的文章,也正是因为基本没有看到更加详细的分析,我决定要自己写一篇记录,一来当做自己记录,二来底层有些地方目前来说我确实不是理解透彻,肯定有不到位的地方,希望大家多提意见,能让文章更加完善。

按照惯例,我把能找到的文章和官方的资料都看了好多遍,官方提到的3大步骤:

对于上述提到的3大步骤,最简单的清晰的是第三步,第二步也有源码,倒是可以查看试着分析一下,但是第一步确实,只是知道这么回事,具体的实现方式因为程序是在ESP32-C3 的内部 ROM 中,确实找不到可以分析的源码和资料。

芯片的启动流程,大多离不开启动文件和链接文件。ESP32-C3应该也是这样,本来按照理解,应该找到底层的启动文件和连接文件开始按照步骤分析,但是查看了一会底层代码,因为对底层架构深入了解得还不够,没有找到= =! 所以想着怎么办?

不能按照从最开始到结束的顺序来,那么就按照从结束到开始的顺序来!我们从app_main 函数反过来一层一层网前看,看看经过了一些什么处理,程序才执行到app_main 函数的!

注意,文章以倒叙的方式说明~ ~

本文是基于 VScode 插件的工程结构来说明(Ubuntu环境)。

一、应用程序启动阶段

1.1 app_main.c

我们从app_main.c的主函数app_main中,我们直接通过转到定义看看上一层:

1.2 po

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值