VxWorks启动过程详解.docVIP

  • 24
  • 0
  • 约5.43千字
  • 约 8页
  • 2017-02-01 发布于重庆
  • 举报
VxWorks启动过程详解

vxworks有三种映像: VxWorks Image的文件类型有三种 - Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM - ROM-based Images(压缩/没有压缩):即将Image直接烧入ROM,运行时将Image拷入RAM中运行。 -ROM-Resident Images:Image的指令部分驻留在ROM中运行,仅将数据段部分拷入RAM。 注意这里说的三种映像都是包含真正操作系统VxWorks的映像,其中后两种可以直接启动并运行起来,但是第一种不行,它必须借助另一个叫做Boot Image的映像(可以在Tornado 中的build-build boot rom中生成)才能运行起来,也就是利用Boot Image引导起来然后通过网口或串口下载真正包含VxWorks的Loadable Image,然后才能运行起来。也就是说Boot Image是和Loadable Image 结合使用的。 现在看来一共有四种映像文件,让我们看看它们的组成吧: -Boot Image:包含一段叫做BootStrap Programs的程序+一段ROM BOOT Program程序。 -Loadable Images:有操作系统VxWorks和应用组成的映像。 -ROM-based Images(压缩/没有压缩):包含一段叫做BootStrap Programs的程序+ Loadable Images(即有操作系统VxWorks和应用组成的映像) -ROM-Resident Images:同上 通过上面我们可以看出,ROM-based Images,ROM-Resident Images,Boot Image 三种映像都包含一段叫做BootStrap Programs的程序,它具有启动功能,可以把ROM中的代码段和数据段拷贝到RAM中;下面让我们看看三种VxWorks的启动过程: (Boot Image + Loadable Images: 我们说过Loadable Images是依靠Boot Image加载启动的,首先有Boot Image中的程序BootStrap Programs把Boot Program程序加载到RAM中的RAM_HIGH_ADRS处,然后控制权交给Boot Program,由Boot Program负责一系列简单的硬件初始化(网口,串口等),开始下载Loadable Images(即包含应用的VxWorks操作系统)到RAM_LOW_ADRS,然后控制权交给VxWorks操作系统开始执行。 下面的图一是一个简单的流程图,后面的图二是更为详细的流程图。 图一? ? 图二(1) ? 图二(2) (ROM-based Images(压缩/没有压缩): 这种映像因为其本身就包含BootStrap Programs程序,因此可以直接启动,所以这种映像中也就不需要Boot Programme了,首先BootStrap Programs启动,把映像中的VxWorks加载到内存的RAM_LOW_ADRS处并开始运行。图三是一个简图,图四是更为详尽的流程图。 ? ? 图三 ? 图四 (ROM-Resident Images: 这种映像的加载和上一种是基本相同的,只不过是加载的只有data段和bss段而已。 上一节主要是从映像的分类和各种映像的大致加载流程上看VxWorks的启动过程,这一节让我们从函数级看一下VxWorks的启动过程: (Boot Image + Loadable Images: VxWorks借鉴了传统PC操作系统的引导原理,其将整个引导过程分为两个阶段:1. BOOTROM启动,2. 通过BOOTROM加载VxWorks内核。 下面是具体的流程图: ?????????????????????? 其中第一阶段的执行流程使用的是上图的左边的源文件中的那些函数(romInit-romStart-usrInit-sysHwinit-usrKernelinit-usrRoot);第二阶段执行流程使用的是上图中右边源文件中的那些函数(sysInit- usrInit-sysHwinit-usrKernelinit-usrRoot-usrAppInit)。下面具体解释: 第一阶段: ??????? romInit.s:romInit() ????????? 系统上电之后,首先调用的函数就是romInit() ????????? 禁止中断 ????????? 把启动类型(冷启动/热启动)放在堆栈上 ????????? 清除cache ????????? 初始化CPU基本寄存器,调用SDRAM初始化函数初始化UPM ????????? 直接跳转到bootIn

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档