时间:2025-01-16 来源:网络 人气:
你有没有想过,当你按下手机的开机键的那一刻,手机内部究竟发生了什么奇妙的变化?今天,就让我带你一起揭开安卓系统开机引导的神秘面纱,看看那些你从未见过的精彩瞬间!
当你的手机从沉睡中苏醒,首先迎接你的是Boot Rom的舞台。这个小小的程序,就像是手机世界的魔法师,它负责点亮手机的灵魂。想象当你的手机接收到电源的召唤,Boot Rom就像一位魔术师,瞬间点亮了手机的屏幕,开始了它的奇妙之旅。
Boot Rom中有一段叫做Boot code的代码,它就像是一把钥匙,打开了手机世界的门。这段代码由汇编写成,小巧而强大。当手机上电后,ARM cores就会跑到对应的地方执行这段代码,从而启动整个开机过程。
Boot Rom code在SRAM中得到运行,它的主要任务是搭建舞台,为接下来的表演做好准备。它首先会初始化stack,然后初始化emmc,并找到emmc中存放的PL bin文件,将其load到sram中。这个过程就像是一位魔术师搭建舞台,为接下来的表演做好准备。
PL bin实际上就是preloader bin,也就是预加载部分。preloader的功能是:初始化少许平台寄存器,以及基本硬件,如uart、timer、pll、uart、i2c、gpio、uuswitch,并为bootloader做足准备,如load lk、load tee等bin到DRAM。
当preloader代码将lk加载到emmc之后,就会跳转到emmc的目标地址执行,随后跳转到lk的入口代码——kmain函数执行。这个阶段,lk就像是一位主角,正式登上了舞台。
lk阶段的功能是:初始化定时器,初始化I2C、PMIC,判断启动模式,加载boot image/dtbo,初始化battery charger,显开机LOGO等等。这个过程就像是一位主角在舞台上展示自己的才艺,吸引着观众的目光。
在lk阶段完成一系列准备工作后,接下来就是加载boot.img的时刻。这个阶段,boot.img就像是一场精彩的表演,为观众带来无尽的惊喜。
加载boot.img的过程,就像是舞台上的演员们开始表演。操作系统开始引导,设备会逐步加载操作系统的核心组件,并初始化各种服务和驱动程序。这个过程可能需要一些时间,特别是在设备首次启动或更新操作系统版本时。
当操作系统引导完成,设备就进入了启动应用程序的阶段。这个阶段主要是加载系统应用程序和用户应用程序,并将它们显示在设备的主屏幕上。这个过程就像是一场精彩的高潮,让观众们沉浸其中。
在应用程序加载完成后,设备会进行各种优化工作,以提升性能和响应速度。这包括缓存数据、预加载资源以及优化应用程序的运行环境等。在所有初始化和优化工作完成后,设备将进入就绪状态。此时,你可以开始使用各种应用程序和功能,享受安卓设备带来的便利和乐趣。
通过这个过程,我们不仅了解了安卓系统开机引导的奥秘,还感受到了科技的魅力。在这个充满奇迹的世界里,每一次开机都是一次全新的冒险,每一次启动都是一次精彩的表演。让我们一起期待,下一次开机时,又会发生怎样的奇妙故事呢?