VxWorks可加載型啓動方式流程梳理

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啓動方式爲例,重點介紹啓動的流程,而不是對啓動細節進行講解,如果讀者需要自己修改相關的環節,可以詳細查看相關文檔或者源碼。
在這裏插入圖片描述

3 參考文檔

  • VxWorks6.8 bsp 源碼文件
  • 《VxWorks BSP Developer’s Guide, 6.8》
  • 《VxWorks Kernel Programmer’s Guide, 6.8》
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章