硬件工程师一定要了解的Android开机启动流程

科技   科技   2024-05-11 11:42   上海  

点击上方蓝字“工程师说硬件”一起玩耍

硬件工程师要了解Android开机流程干嘛?很多小伙伴肯定会提出质疑,甚至工作多年的硬件“老鸟”也会对此不屑一顾。

你且听我细细道来。

对于做过高通或MTK等平台项目的同学而言,一定经常面对开关机类问题的分析,是不是被折磨的酸爽,经常不知所措,碰到这类问题眼前一黑,不知从哪里开始分析。

如果此时的你,很熟悉Android开机流程的话,你就可以通过一份串口log(有可能干路问题,一点log没有),初步定位到出问题的模块,接着再针对性分析即可,是不是立马神清气爽了。

那么今天就以高通平台为例,给大家简单讲解一下Android开机流程。(在此,特别感谢我软件哥)

高通平台的启动流程可以大致分为四个阶段:PBL--SBL--UEFI--Kernel,分别对应图上的4个部分。

PBL(Primary Boot Loader):初始启动加载的意思,这一阶段运行在SOC的ROM里,主要是校验和加载接下来要执行的SBL镜像。

SBL(Second Boot Loader):第二阶段启动加载的意思,这一阶段主要是初始化PMIC、Flash、DDR,并加载大量镜像文件到DDR中,包括接下来要执行的UEFI镜像。

UEFI(Unified Extensible Firmware Interface):统一可扩展固件接口的意思,这一阶段主要是校验和加载Kernel的镜像。需要注意的是,显示模块也是在该阶段首次做初始化,电亮第一幅图片。这是我们分析不开机类问题时,可以直观感受到的一个节点。

Kernel:核心的意思,作用正如其名字一般,这一阶段会开始初始化各种驱动和子系统,并校验system和vendor等镜像,最后启动各种服务,最后就到Android上层、Home界面啦。(咱们搞硬件的,这一阶段重点关注各模块初始化就可以,上层服务的问题一般和我们无关)

至此,想必你对这么复杂的开机流程已经有了一定了解了。那在log中,这几个阶段都是如何对应的呢?以如下部分log举例,从PBL到UEFI,每个阶段开始和结束都会伴随着"xxx Start,xxx End"字样。

需要注意的是,PBL阶段本身并不吐log,只是到了SBL之后打印出了之前约定好的做事顺序而已。

好了,作为一名成熟的硬件工程师,也该学会为你的BSP同学分担一点压力了,不用万事先找软件抓log啦。


以上就是本期分享的所有内容啦,欢迎大家持续关注,更多干货正在快马加鞭地赶来。

工程师说硬件
多年一线大厂手机硬件资深开发工程师、新晋AR领域高级硬件工程师。 定期分享硬件干货知识、调试案例、电路设计等知识!
 最新文章