副标题:设备启动流程分析
安卓设备上电启动流程,不同SOC流程不尽相同。
因此这里用比较简洁的流程代替,即使是启动流程复杂的SOC, 启动的关键流程都是类似的。
1. 设备上电
通常车机设备,这里包含MCU上电后,给安卓核上电(即图中CPU core)。
CPU上电/复位后,执行Boot Rom中的程序,进行基础的初始化 和启动决策,也就是从这里启动。
2. Boot Rom从读取flash中参数
开发板在上电时会读取这些信息并对寄存器做相应的初始化,如开启某些外设的时钟、初始化DDR等。
3. Boot Rom解析数据和初始化DDR。
4. 加载Uboot到内存中,并运行。
5. Uboot从flash中加载boot.img, 进行解析,并将kernel/dtb/ramdis放到指定位置。
然后跳转到kernel的引导程序执行。
6.kernel启动,并执行第一个用户进程init.
7.init启动过程中,会执行非常多的动作,包含挂载分区,启动安卓核心服务等等。