VxWorks可加载型启动方式流程梳理

文章目录

  • VxWorks可加载型启动方式流程梳理
    • 1 VxWorks 的两种基本启动方式
      • 1.1 加载型启动方式
        • 1.1.1 bootrom 文件
          • bootrom文件的组成:
          • bootrom 文件的格式
          • bootrom 文件的类型
        • 1.1.2 VxWorks镜像文件
      • 1.2 可启动型启动方式
      • 1.3 两种启动方式的应用场景
    • 2 可加载型启动流程梳理
    • 3 参考文档

VxWorks可加载型启动方式流程梳理

1 VxWorks 的两种基本启动方式

1.1 加载型启动方式

 在这种启动方式下,VxWorks镜像文件不能独立完成启动,需要bootrom程序先启动,然后通过网络、串口、usb、Tffs等方式将VxWorks镜像从flash、硬盘、网络等其他介质时上加载至RAM中,从而完成VxWorks系统的启动。在这种情况下需要以下两种镜像文件:

  • bootrom镜像文件
  • VxWorks系统镜像

1.1.1 bootrom 文件

bootrom文件的组成:

bootrom需要完成以下功能完成最原始的上电启动,初始化各种硬件设备,加载VxWorks系统镜像、加载 Shell [VxWorks Boot]等工作,通常有以下源文件组成:

romInit.s
usrConfig.c 
usrConfig.c 
bootInit.c 
version.c
ctdt.c
sysNet.c 
sysNetif.c 
sysNvRam.c 
sysScsi.c 
sysSerial.c 
sysTffs.c 
sysTherm.c 
sysUefi.c 
sysUltraEnd.c 
sysWindML.c 
usbPciStub.c
...

这种情况下bootrom可以看成一个小型的VxWorks系统。

bootrom 文件的格式

我们再利用VxWorks的集成开发环境 WorkBench创建 bsp项目时会提示创建的bootrom的类型如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FmcZImn7-1588167644419)(./images/bootrom文件格式.png)]

至于以上三总文件的不同,在这里不做详细解释,需要了解的朋友可以自行查阅相关资料
一般我们选择 bin二进制文件。

bootrom 文件的类型

在这里插入图片描述

下面简要介绍这几种文件的区别:

  • bootrom

 可以理解为一个带有引导加载程序的VxWorks映像,一般被烧到Flash中去。然后将自己解压到RAM中执行。此类镜像文件需要的ROM空间最小,但是需要较大RAM空间。

  • bootrom_uncmp

 与bootrom唯一不同是不需要解压,而是直接将自身复制到RAM中去,相比而言此类镜像启动较快,但是占用较大的ROM空间,需要的RAM空间和bootrom相同。

  • bootrom_res

 与bootrom不同的是,镜像只拷贝数据段到RAM中机执行,存取相关的指令在ROM中,此类镜像需要较大的ROM空间,但是需要的RAM空间很小 。

  • bootrom_res_high

 从名称上就可以看出 此类镜像和bootrom_res 唯一的不同就是将镜像文件载入到RAM的高地址空间中(默认载入低地址空间).

1.1.2 VxWorks镜像文件

通常VxWorks镜像文件有以下几种类型:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DdRZoCDc-1588167644440)(./images/VxWorks镜像类型.png)]
而可加载类型则为第一个,文件的格式为 ELF类型 ,这种镜像不具备独立的启动能力。

  • vxWorks

可加载型镜像文件,此类文件不具备独自启动的能力,必须和bootrom进行配合使用。

1.2 可启动型启动方式

在这种情况下 VxWorks的进行具备独立启动的能力不需要专门的bootrom镜像就可以实现启动,这种镜像通常固化在flash上。通常具有三种类型:

  • vxWorks_rom

  • vxWorks_romCompress

vxWorks_romResident
这三种镜像文件和前面bootrom类似,所以不再这里进行详细解释,可以参阅《VxWorks Kernel Programmer’s Guide 6.x》相关章节内容

1.3 两种启动方式的应用场景

  • 可加载型
    这种方式一般用于开发的前期,可以频繁的更换VxWorks镜像文件,尤其是通过网络加载VxWorks镜像文件,只需要一片bootflash就可以实现VxWorks的加载,不需要加载硬盘、大容量的flash,但是到后期程序比较稳定之后就应该考虑程序程序自启动的问题,对于可加载型通常的实现方式是采用硬盘或者flash挂载文件系统,将镜像文件放在固定的路径下,bootrom启动时通过文件系统将VxWorks镜像加载进RAM从而实现系统的自启动,VxWorks系统中通常会启动一个TFTP或者TFP服务器,方便开发人员随时替换VxWorks镜像文件。
  • 可引导型
    此类型的镜像可以自己实现自启动,不需要额外的bootrom镜像,经VxWorks_rom镜像直接烧写进flash中,一般VxWorks镜像文件大约3M左右,所以选用FLASH一定要大于4M,这样才能保重有充足的空间来进行存储,此情况不需要配置文件系统,有一个缺点就是替换程序不太方便,更新程序需要重新固化。

2 可加载型启动流程梳理

本章介绍可加载型启动方式的基本流程,重点梳理启动的流程。
本次启动过程以FTP启动方式为例,重点介绍启动的流程,而不是对启动细节进行讲解,如果读者需要自己修改相关的环节,可以详细查看相关文档或者源码。
VxWorks可加载型启动方式流程梳理_第1张图片

3 参考文档

  • VxWorks6.8 bsp 源码文件
  • 《VxWorks BSP Developer’s Guide, 6.8》
  • 《VxWorks Kernel Programmer’s Guide, 6.8》

你可能感兴趣的:(VxWorks)