先講講BSP和BootRom之間的區別BSP只與“target/config/”下對應目錄相關
romInit.s定義系統的入口romInit函數,系統上電最先執行的代碼。romInit禁止CPU中斷,設置初始堆棧,配置DRAM控制器等少數CPU設置后調用第一個C程序romStart。進一步硬件初始化有sysLib.c中定義sysHeInit函數完成。romInit.s中的硬件初始化會在sysALib.s或sysLib.s重復一遍。因為vxworks程序只需要BootRom提供參數串和啟動代碼。而不依賴于BootRom的硬件初始化(除了RAM初始化)。BootRom和Vxworks的無關行是一個原則,若不遵循這個原則,就會出現Vxworks和BootRom的關聯修改。
從宏觀角度看來,一般是先加載BootRom;BootRom在加載VxWorks應用,并跳轉到Vxworks的入口sysInit執行;VxWorks有可能根據啟動的腳本文件加載應用模塊。整個過程完成后,系統進入多任務環境。
對于PC兼容體系結構,CPU不能從這樣的存儲器中獲取指令執行,而需要BIOS的輔助。BIOS講啟動盤的引導扇區復制到主內存空間,再跳內存的指定地址執行。BIOS本身所處的存儲器時CPU可直接訪問執行的。BIOS再加載程序映象時喲自己的規范,比如引導扇區的位置和大小等。BootRom自己能滿足這樣的要求,比如說大小,BootRom比一個扇區大了許多。BIOS不能直接加載BootRom,而只能先加載輔助的小程序Vxld。由于大小限制,Vxld不支持完善的文件系統,所以要求啟動盤上的BootRom文件必須連續存放。Vxld再加載BootRom。由于硬件環境限制,Vxld必須做的非常小,不能啟動保護模式和支持翻檢系統,因而限制了所能減災程序映象的大小和內存加載位置。啟動盤(如軟盤)的大小也會限制程序映象的大小。
也有可能由于環境影響,出現BootRom與Vxworks映象融合在一起的情況,可以直接從Rom啟動但是不靈活。
映象分類 類型
功能 BootRom,VxWorks,目標模塊,vxworks_rom
運行位置 ROM運行[rom-resident],RAM運行的
壓縮 壓縮的,非壓縮的
文家格式 標準執行格式(如ELF),Hex格式(支隊Rom型的映象而言),而進制格式
符號表 Standalone,包含符號表和tshell等