vxworks ---可加载的VxWorks映象

更多参看 http://www.embhelp.com/drew/

 


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

1.1   可加载的VxWorks映象

这是一种运行于RAMVxWorks映象。它不包含搬移程序,需要借助于一些外部的程序如bootRom才能加载到RAM的低端RAM_LOW_ADRS地址处。这是缺省的开发映象。

在开发的初期阶段,用户可以根据需要添加或删除一些VxWorks组件,生成自己的可加载的VxWorks映象,存放在开发主机的某个目录下。目标板上电后,由烧结在BOOT中的起始引导程序(BootStrap Programs)BOOT中的ROM引导程序(ROM Boot Programs)拷贝到RAM的高端地址RAM_HIGH_ADRS处,并跳转至该地址执行ROM引导程序,配置好所选的加载方式(缺省为网络方式),将指定的主机目录下的可加载的VxWorks映象下载到目标板的RAM地址RAM_LOW_ADRS处,并跳转到此处执行。如图1所示。

 

vxworks ---可加载的VxWorks映象_第1张图片

,节省了BOOT容量,也便于随时修改不同的VxWorks映象,适用于调试的初期阶段。不足之处是需要在主机上维护一个正确的VxWorks映象,对于调试硬件无关的上层应用程序显得不是很方便。

    Tornado工作台的Build窗口中,选择Rules属性页中的VxWorks即可生成可加载的VxWorks映象。

1.1   用于可加载VxWorks映象的BOOTROM

由图1所示可知,用于可加载VxWorks映象的BOOTROM包含两部分:起始引导程序(BootStrap Programs)ROM引导程序(ROM Boot Programs)。

起始引导程序驻留在ROM中,主要包含:

l          汇编级的硬件初始化程序romInit.s,用于系统的基本初始化,设置一些重要寄存器的初始值,进行存储器的映射

l          搬移程序bootInit.c,将ROM引导程序拷贝至RAM的高端地址RAM_HIGH_ADRS,然后跳转到此处执行ROM引导程序。

ROM引导程序起初存放在ROM中,初始化时被拷贝到RAM中,主要用于系统的进一步初始化,并配置加载方式,将VxWorks映象加载至RAM。可分为三种不同的类型:

l          压缩的ROM引导程序,在拷贝的过程中需要解压缩,在RAM中执行

l          未压缩的ROM引导程序,可直接拷贝,在RAM中执行

l          驻留ROMROM引导程序,仅拷贝ROM引导程序的数据段,代码段仍旧在ROM中执行

Tornado开发环境中,通过在主窗口点击Build|Build Boot ROM…可以选择生成以上

三种BOOTROM,分别为:bootrom_uncmp.hex(未压缩的BOOTROM)bootrom.hex(压缩的BOOTROM)bootrom_res.hex(驻留的BOOTROM)。

静态连接到可加载的VxWorks映象的系统初始化代码执行并完成整个初始化过程。

引导过程成功以后,RAMROM引导程序占用的空间(从RAM_HIGH_ADRS开始)可以重新被系统利用。

1中所示的各地址含义为:

l         LOCAL_MEM_LOCAL_ADRSRAM的起始地址

l         RAM_LOW_ADRSVxWorks的加载点,也是VxWorks代码段的起始位置

l         FREE_RAM_ADRSVxWorks映象的结束点。通常也是系统内存池和目标服务器内存池的起始地址

l         RAM_HIGH_ADRSROM引导程序的加载点。它也是ROM引导程序(除驻留ROM引导程序之外)的代码段的起始位置,或驻留ROM引导程序数据段的起始位置。

 

 

 

 

你可能感兴趣的:(工作,image,汇编,服务器,存储,Build)