《系统开机流程.docx》由会员分享,可在线阅读,更多相关《系统开机流程.docx(2页珍藏版)》请在三一办公上搜索。
1、Monahans系统开机流程PMU检测到power key后,通知Intel有上电操作。如图所示,Intel首先进入BOOTROM程序,然后由BOOTROM加载MOBM到芯片的内部SRAM中,然后由MOBM加载各自的BootLoader到SRAM中。再由BootLoader加载操作系统的映象到SRAM中,整个系统由此启动。BOOTROM是固化在CPU内的一段代码。他的主要任务是加载FLASH中的系统引导程序和烧写FlASH,以及一些必要的初始化程序,图1 系统启动流程图BOOTROM大致流程如图所示:系统复位并初始化后,BOOTROM会检测FFUART或USB是否收到主机(PC)发出的烧写(F
2、LASH)的命令,如果收到烧写命令,BOOTROM将按照特定的协议与主机建立连接,下载并烧写FLASH。如果未收到烧写命令,BOOTROM将正常引导系统。进入正常引导程序后,BOOTROM首先加载并运行MOBM。图2 BOOT ROM流程图接下来,系统进入MOBM。MOBM功能较为简单,它对系统做更为全面的初始化后,加载并运行真正意义上的BootLoader。在Windows Mobile 6.0系统中,真正的BootLoader应该是IPL。但是为了开发调试方便,在系统进入IPL之前首先进入EBOOT。EBOOT也就是Ethernet Boot,它可以通过以太网或RNIDS(用USB虚拟的以
3、太网口)跟我们的开发调试环境PB建立连接,并通过下载操作系统映像或调试底层软件。EBOOT还可以通过串口和PC机交互,打印引导配置菜单和调试信息。EBOOT的大致流程如图3所示。图3 EBOOT流程图做完必要的初始化后,EBOOT通过串口打印出系统设置菜单,开发人员可以通过PC端的超级终端程序与EBOOT交互来设置系统启动设备、系统调试端口、KITL工作模式、IP地址等系统引导参数。EBOOT会将这些参数永久保存在FLASH永久区域,同时将这些参数保存在系统保留内存空间以供IPL和操作系统内核访问。由于现在大多数手机已经不保留串口,也就无法通过超级终端程序与EBOOT交互。于是需要修改EBOO
4、T程序,让它通过判断用户按键来完成这些系统配置工作。比如开机后长按“Volume up”进入下载模式,长按“Volume down”键开启kitl进入调试模式,若没有按键,系统关闭kitl正常引导操作系统。若不需要PB下载操作系统映像,EBOOT在设置完系统引导参数后便会加载IPL。IPL(Initial program loader)的主要任务是:通过判断EBOOT传递过来的系统引导参数或保存在FLASH中的特定标志位来决定是进入Image Update还是正常引导操作系统。IPL通过读取MBR(master boot record)中的分区信息,来定位及引导ULDR或Normal OS。此外,还需要在IPL中加入显示开机画面和关机充电的功能。IPL的大致流程如图4所示。图4 IPL流程图