BSP引导映像
--- 由BSP引导代码所生成的映像,只有基本的wind多任务微内核,不包括大部分VxWorks组件,不包含应用代码。能引导目标系统,用于装入VxWorks系统映像。
BSP 引导映像用于装入可下载(Loadable)型的VxWorks系统映像。引导映像被烧入在ROM或者装入FLASH中,执行时总是从ROM/FLASH 开始,但是不同的引导映像差异体现在是否驻留ROM/FLASH,以及是否进行压缩。这些分类定义在rule.*中,分为如下3种:
bootrom 压缩的引导ROM映像
编译使用的BSP文件一般为rominit.s,bootInit.c,bootConfig.c,sysLib.c。搬移程序bootInit.c负责将压缩的文本段和数据段解压到RAM_HIGH_ADRS。
bootrom_uncmp 未压缩的引导ROM映像
编译使用的BSP文件一般为rominit.s,bootInit.c,bootConfig.c,sysLib.c。搬移程序bootInit.c负责将压缩的文本段和数据段解压到RAM_HIGH_ADRS。文本段和数据段均没有经过压缩。
bootrom_res 驻留ROM引导映像
驻留ROM运行,不进行压缩,搬移程序bootInit.c负责将数据段搬移到RAM_HIGH_ADRS。编译使用的BSP文件一般为rominit.s,bootInit.c,bootConfig.c,sysLib.c。
生成BSP引导映像时使用bootConfig.c,该文件的作用类似于VxWorks系统映像中的usrConfig.c,但是后者初始化了许多VxWorks组件。BSP引导映像的执行过程如下:
汇编模块“romInit.s”和C模块“bootInit.c”被称为引导代码,它们总是从ROM开始执行。引导代码要求和地址无关(PIC),而被引 导部分无此要求。BSP的bootConfig.c只为了装入VxWorks系统映像,因此提供的功能只要包括取得引导参数,然后下载映像并执行。在 tBoot跳转到被装入映像的入口开始,引导映像的工作即告结束,系统映像开始其新的“初始化-----多任务内核运行”的过程。
实际上,也正是使用了bootConfig.c而不是usrConfig.c使其成为BSP引导映像而不是VxWorks系统映像。
VxWorks系统映像
--- 包括wind多任务微内核,用户通过定制VxWorks组件和进行应用程序开发所生成的映像,该映像也可能包括BSP的引导代码。VxWorks系统映像 又可细分为:可下载(Loadable)型映像、基于ROM(ROM-Based)型映像、ROM驻留(ROM-Resident)型映像。
可下载(Loadable)型映像
在引导代码执行后,把可下载(Loadable)型映像加载到RAM中,然后跳转到VxWorks映像的入口点。
基于ROM(ROM-Based)型映像
系统加电后引导带代码执行,把VxWorks映像的代码段和数据段加载到RAM中,随后系统将控制权转移给RAM中的VxWorks映像的初始化代码。
ROM驻留(ROM-Resident)型映像
系统加电后引导带代码执行,只把VxWorks映像的数据段加载到RAM中,随后系统将控制权转移给ROM/FLASH中的VxWorks映像的初始化代码。