作为一款优秀的嵌入式实时多任务操作系统,vxWorks提供了很多种程序映像类型,在开发过程中十分容易让人感到困惑,而且相关的参考资料对这个问题的描述也不集中,因此,本文拟对VxWorks的几种映像作详细的分析。 VxWorks的映像主要包括两大类,一类是BootRom类型,一类是VxWorks类型。
其中BootRom类型映像是一个最小化、专用的VxWorks引导映像,实现最少的系统初始化,主要用于启动装载VxWorks映像,其功能类似于PC机的BIOS。BootRom运行时也建立起多任务环境,包括usrRoot任务、网络任务、TFFS任务和FTP任务等。引导映像在运行时,可能在ROM/Flash中执行(例如ROM驻留型引导映像),也可能在RAM 中执行。在系统中其对应的编译规则文件是rules.bsp。BootRom类型的映像又可细分为三种:BootRom_res、BootRom_uncmp和BootRom。第一种是一直运行在rom 中的映象,只把data段拷贝到ram 里面;第二种是非压缩方式的映象,data段和text段都要拷贝到ram里面,并在ram里面运行;第三种是压缩方式的映象,生成的时候编译器会把除掉romlnit.s和bootInit.c之外的目标文件压缩并“汇编”成一个bootrom.Z.s,最后和romInit.o,bootInit.o,version.o进行链接,生成bootrom映像。所以它也是要全部拷贝到ram 中,并必须要进行解压缩的工作。而这些工作基本上都是在bootInit.c中进行的。