Mobile手机系统启动过程.doc
《Mobile手机系统启动过程.doc》由会员分享,可在线阅读,更多相关《Mobile手机系统启动过程.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、深入剖析Mobile手机系统启动过程! 介绍一下mobile系统的启动流程,仅供大家学习之用:硬件平台:TI omap软件平台:WM5.0相关术语:RTOS Real-time Operating SystemEBOOT ETHERNET BOOTIPL Initial Program Loader整体流程:powerON-BootROM-x-loader-Eboot-IPL-OS下面围绕上述过程展开:1powerON这里指的是硬件power ON,当按触powerON键后,系统上电,同时触发CPU复位管脚。系统进入到BootROM中,执行其中固化的代码。2BootROM:BootROM中固化
2、了一段引导代码,用于系统初始化,初始化必要的寄存器,决定启动流程是正常启动或者启动flashing,进入到x-loader。Boot ROM的初始化工作有:l 关闭可屏蔽中断l 时钟设置和DPLL设置l 配置ULPD寄存器,为UART提供48MHz的时钟频率l 配置ARM CORE内部寄存器l 配置EMIFS寄存器l 建立ARM CORE中断向量表上面的工作实际上就是初始化必要寄存器,例如EMIFS初始化。在系统上电时候,BootROM代码会检测是否需要擦写flash内容,可以是部分擦写也可以是全部擦写。擦写工作一般在上电时刻进行,BootROM代码初始化可编程接口(例如USB或者UART串口
3、),然后等待从上位机发过来的boot command命令,如果在没有收到或者等待超时,系统正常启动。(注;上位机是指:人可以直接发出操控命令的计算机,一般是PC。从概念上说控制者和提供服务者是上位机,被控制者和被服务者是下位机。可以理解为主机和从机的关系)如果等到上位机的boot command命令,上位机会download Flash loader程序到omap的interal ram 空间中。Flash loader是由自身的header,flash loader应用程序和一些附加程序构成。接着Boot ROM程序在安全模式下,检查flash loader的signatures来校验其完整
4、性,如果检查失败,系统重启。如果检查通过,flash loader程序开始运行,它将较大size的OS image downloader到Flash介质中。Boot ROM决定启动方式:1)从NOR或者NAND Flash 正常启动2)通过USB或者UART编程后,然后重新正常启动。Boot ROM加载 x-loader:OS Image 下载到flash后,boot ROM代码会从NOR或者NAND flash中查找TOC。TOC是在flash上的一个数据结构,包含了Image信息,起始位置,大小等等。TOC可以有多个,每个TOC都对应着一个Image。NAND flash上TOC最多为16
5、个,最大size为512B。NOR flash情况不一样。Boot ROM 检测项目名为“x-loader”的TOC,让后将对应的Image加载到内存。x-loader是一个通用的loader程序,被Boot ROM从FLASH中启动(NOR),x-loader承担OS的启动,x-loader会被校验然后才会授予权限继续运行。NOR flash上的 sub-image 具有XIP特性,因此NOR flash上的x-loader大小不受限制。对于NAND flash由于其不支持XIP,所以Boot ROM在其开始处预留了64K空间,这个预留空间用于启动扇区,至少包含一个TOC,TOC和其对应的i
6、mage 被copy到RAM空间,然后才能被执行。3 x-loaderx-loader的功能有哪些?a,初始化硬件,如GPIO初始化。b,加载Eboot代码到RAM空间c, 跳转到Eboot代码介绍一下x-loader TOC实现机制:xldr_startup.s (srcbootxldr) 。 ALIGN 0x200 DCD 0x ; Startoffset from TOC start (0x240) DCD 0x ; Size DCD 0x ; Flags DCD 0x ; Align DCD 0x ; Spare DCD 0x4F4C2D58 ; Filename - X-LO DCD
7、 0x ; Filename - ADER DCD 0x ; Filename - Blank DCD 0xFFFFFFFF ; terminating TOC entry DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFF DCD 0xFFFFFFFFStartUp ;(0x240)/X-LOADER入口地址 EXPORT StartUp INCLUDE.commonsrcARMTIomap730startuphwinit.sHwinit.s的主要功能:l Set
8、SVC mode & disable IRQ/FIQl Initialize cache & CP15 control registerl Initialize TIPB Bridgesl Initialize EMIFS (flash & debug board controller)l Initialize EMIFF (DRAM controller)l Initialize OCPT1/OCPT2l Initialize OCPIl Initialize UPLDl Initialize CLKMl Configure OMAP730 SoC multiplexingl Configu
9、re OMAP730 SoC GPIOl Disable Watchdog Timerl Set DMA to OMAP3.2 model Reset USB modules4EBootEBoot(ethernet boot)位于MDOC的SPL分区,EBoot主要被PLATFORM BUILDER用来完成对DOC的编程,作为一个系统引导,下载工具,对菜单选项进行操作,并且通过EBoot能够对引导参数进行配置.首先看看EBOOT对系统进行参数配置所设计到几个重要变量。l g_bootCfgtypedef struct UINT32 signature; / Structure signatur
10、e UINT32 version; / Structure version DEVICE_LOCATION bootDevLoc; / Boot device DEVICE_LOCATION kitlDevLoc; UINT32 kitlFlags; / Debug/KITL mode UINT32 ipAddress; UINT32 ipMask; UINT32 ipRoute; BOOT_CFG; 这个全局变量用来保存系统启动配置参数,实际上对菜单选项的操作实质上是对这个结构变量对应部分的设置。通过BLMenu()来进行菜单选项的操作。l g_eboot typedef struct OA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Mobile 手机 系统启动 过程
限制150内