Android整体上电启动流程
具体流程图如下:
流程分析:
1-3: 板子上电时,就跳转到boot Rom中去执行boot code,之后boot code中去加载preloader到ISRAM中去执行
4-6: 接着preloader跳转到EL3去执行ATF(Arm Trust firmware), ATF为ARM芯片的底层固驱动,将触发LK
7-8: 将LK从flash中copy到DRAM中去初始化,为进行启动linux kernel做准备
9-10: 解压bootimage成ramdisk跟kernel,并加载到DRAM中进行初始化dtb,开始做kernel初始化.
11-13: LK跳转到kernel初始化,kernel初始化完成,会fork出init进程, 然后, 拉起ramdisk中的init进程进入用户空间初始化验,
init进程fork出zygote进程,直到整个Android系统自动完成.
到此,整个Android系统就启动完毕,可以看Android的logo启动,最后进入桌面.
DRAM在哪得到初始化的?
由于硬件DRAM的颗粒不同,访问的timing也不同,因此,要知道DRAM如何运行,