VxWorks启动过程详解(上)

简介: <p>vxworks有三种映像: </p> <p><span style="font-size:12px">VxWorks Image的文件类型有三种</span></p> <ol><li><span style="font-size:12px"> Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM</span></li><li><span style

vxworks有三种映像:

VxWorks Image的文件类型有三种

  1.  Loadable Images:由Boot-ROM引导通过网口或串口下载到RAM
  2.  ROM-based Images(压缩/没有压缩):即将Image直接烧入ROM,运行时将Image拷入RAM中运行。
  3. ROM-Resident Images:Image的指令部分驻留在ROM中运行,仅将数据段部分拷入RAM。

注意这里说的三种映像都是包含真正操作系统VxWorks的映像,其中后两种可以直接启动并运行起来,但是第一种不行,它必须借助另一个叫做Boot Image的映像(可以在Tornado 中的build->build boot rom中生成)才能运行起来,也就是利用Boot Image引导起来然后通过网口或串口下载真正包含VxWorks的Loadable Image,然后才能运行起来。也就是说Boot Image是和Loadable Image 结合使用的。

现在看来一共有四种映像文件,让我们看看它们的组成吧:

  1. Boot Image:包含一段叫做BootStrap Programs的程序+一段ROM  BOOT Program程序。
  2. Loadable Images:有操作系统VxWorks和应用组成的映像。
  3. ROM-based Images(压缩/没有压缩):包含一段叫做BootStrap Programs的程序+ Loadable Images(即有操作系统VxWorks和应用组成的映像)
  4. 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段而已。

相关文章
|
Linux
16.8 Linux启动引导程序加载内核
在刚刚的启动过程中,我们已经知道启动引导程序(Boot Loader,也就是 GRUB)会在启动过程中加载内核,之后内核才能取代 BIOS 接管启动过程。如果没有启动引导程,那么内核是不能被加载的。
190 0
16.8 Linux启动引导程序加载内核
|
芯片
BIOS启动过程分析
1        引言 1.1    文档目的 对于电脑用户来说,打开电源启动电脑几乎是每天必做的事情,但计算机在显示这些启动画面的时候在做什么呢?大多数用户都未必清楚了。
1446 0
|
Android开发 内存技术
uboot启动过程详解
版权声明:您好,转载请留下本人博客的地址,谢谢 https://blog.csdn.net/hongbochen1223/article/details/70185846 在android启动过程中,首先启动的便是uboot,uboot是负责引导内核装入内存启动或者是引导recovery模式的启动。
1142 0
|
C语言 内存技术
Uboot启动过程详解
u-boot系统启动流程 大多数bootloader都分为stage1和stage2两部分,u-boot也不例外。 依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。
1131 0