基于MTK7981平台,学习了解理解SoC上电和boot流程

       当SoC芯片流片回来后,并不是直接通电就可以使用的。需要进行上电复位,然后对SoC进行配置使其进入到正常工作状态,然后才能运行正常的程序和任务。这是一个比较复杂的过程,也是在芯片设计阶段,SoC需要重点考虑的问题。上电不能成功,芯片流片回来直接就不能启动,这也是最重大的失败,所以保证芯片能正常上电启动是SoC设计最重要的第一步。

由于SoC各种各样,不同是SoC的启动流程是有区别的,但是大部分SoC遵循着基本的流程:

  1. 上电复位:芯片通电后,所有寄存器和内存被重置到初始状态。

  2. Boot阶段:初始化硬件;

  3. 操作系统启动:内核初始化,加载驱动,挂载文件系统。

  4. 用户空间初始化:启动系统服务和用户界面。

这个过程确保了SOC从断电状态到操作系统完全运行的平滑过渡。下面详细说明每个阶段的内容。

上电复位(Power-On Reset)

当SOC通电或复位信号触发时,SOC进入复位状态。复位电路会将所有寄存器和内存重置为已知的初始状态,确保系统从一个干净的状态开始启动。

Power-On Reset缩写为POR,这是一个非常常见的缩写,需要记住

这个阶段还需要准备好Boot Mode Pin,确定Boot的介质,Boot Mode在POR释放时候锁存。

POR释放后开始reset flow阶段,SoC内部一般有一个控制reset sequence的状态机FSM,来进行启动阶段的reset。这个reset的控制和SoC内部实现强相关,不同的SoC有不同的实现方式。

同时还会完成下面任务:

  1. 确认PLL输出时钟稳定;

  2. 会启动必要的外设的时钟;

  3. 释放必要的模块的reset;

  4. 使用OTP配置内部模块;

  5. 进行进行Power-On Self-Test(POST)等

越是复杂的SoC,在这个阶段需要做的事情越多。

Boot阶段

系统引导程序

在遥远的单片机时代,嵌入式设备功能比较单一,每个设备只需要执行一件简单的任务,因此在系统初始化完成后,程序就运行在一个大循环中,此时,系统启动流程和功能代码并没有很严格的区分。 随着技术的发展,嵌入式系统变得越来越复杂,单片机(MCU)和系统级芯片(SoC)之间的差异也越来越明显。在早期的单片机时代,设备的处理能力有限,通常只需要执行一些简单的任务,如控制一个电机或者读取传感器数据。这些任务通常可以通过一个简单的程序循环来实现,不需要复杂的操作系统。

然而,随着SoC的出现,情况发生了变化。SoC通常包含多个处理器核心、图形处理单元(GPU)、数字信号处理器(DSP)、

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值