您好,欢迎访问三七文档
Monahans系统开机流程PMU检测到powerkey后,通知Intel有上电操作。如图1所示,Intel首先进入BOOTROM程序,然后由BOOTROM加载MOBM到芯片的内部SRAM中,然后由MOBM加载各自的BootLoader到SRAM中。再由BootLoader加载操作系统的映象到SRAM中,整个系统由此启动。BOOTROM是固化在CPU内的一段代码。他的主要任务是加载FLASH中的系统引导程序和烧写FlASH,以及一些必要的初始化程序,BOOTROM大致流程如图2所示:系统复位并初始化后,BOOTROM会检测FFUART或USB是否收到主机(PC)发出的烧写(FLASH)的命令,如果收到烧写命令,BOOTROM将按照特定的协议与主机建立连接,下载并烧写FLASH。如果未收到烧写命令,BOOTROM将正常引导系统。进入正常引导程序后,BOOTROM首先加载并运行MOBM。接下来,系统进入MOBM。MOBM功能较为简单,它对系统做更为全面的初始化后,加载并运行真正意义上的BootLoader。在WindowsMobile6.0系统中,真正的BootLoader应该是IPL。但是为了开发调试方便,在系统进入IPL之前首先进入EBOOT。EBOOT也就是EthernetBoot,它可以通过以太网或RNIDS(用USB虚拟的以太网口)跟我们的开发调试环境PB建立连接,并通过下载操作系统映像或调试底层软件。EBOOT还可以通过串口和PC机交互,打印引导配置菜单和调试信息。EBOOT的大致流程如图3所示。POWERONBOOTROMNORMALOSULDREBOOTIPLMOBM是否需要进入ULDRRESET初始化系统加载MOBM烧写FLASH是否需要烧写FLASH图1系统启动流程图图2BOOTROM流程图做完必要的初始化后,EBOOT通过串口打印出系统设置菜单,开发人员可以通过PC端的超级终端程序与EBOOT交互来设置系统启动设备、系统调试端口、KITL工作模式、IP地址等系统引导参数。EBOOT会将这些参数永久保存在FLASH永久区域,同时将这些参数保存在系统保留内存空间以供IPL和操作系统内核访问。由于现在大多数手机已经不保留串口,也就无法通过超级终端程序与EBOOT交互。于是需要修改EBOOT程序,让它通过判断用户按键来完成这些系统配置工作。比如开机后长按“Volumeup”进入下载模式,长按“Volumedown”键开启kitl进入调试模式,若没有按键,系统关闭kitl正常引导操作系统。若不需要PB下载操作系统映像,EBOOT在设置完系统引导参数后便会加载IPL。IPL(Initialprogramloader)的主要任务是:通过判断EBOOT传递过来的系统引导参数或保存在FLASH中的特定标志位来决定是进入ImageUpdate还是正常引导操作系统。IPL通过读取MBR(masterbootrecord)中的分区信息,来定位及引导ULDR或NormalOS。此外,还需要在IPL中加入显示开机画面和关机充电的功能。IPL的大致流程如图4所示。设置引导参数加载IPL下载image是否下载image初始化系统加载image显示开机画面关机充电开机键是否按下?初始化加载ULDR加载NormalOS是否需要进入ULDR?图3EBOOT流程图图4IPL流程图
本文标题:系统开机流程
链接地址:https://www.777doc.com/doc-655327 .html