<dfn id="is4kg"></dfn>
  • <ul id="is4kg"></ul>
  • <abbr id="is4kg"></abbr>
  • <ul id="is4kg"></ul>
    <bdo id="is4kg"></bdo>
    以文本方式查看主題

    -  曙海教育集團論壇  (http://www.hufushizhe.com/bbs/index.asp)
    --  VxWorks技術討論區(qū)  (http://www.hufushizhe.com/bbs/list.asp?boardid=11)
    ----  vxworks啟動進一步討論  (http://www.hufushizhe.com/bbs/dispbbs.asp?boardid=11&id=1400)

    --  作者:wangxinxin
    --  發(fā)布時間:2010-11-17 9:02:39
    --  vxworks啟動進一步討論

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

    映象分類       類型
    功能        BootRom,VxWorks,目標模塊,vxworks_rom
    運行位置  ROM運行[rom-resident],RAM運行的
    壓縮      壓縮的,非壓縮的
    文家格式  標準執(zhí)行格式(如ELF),Hex格式(支隊Rom型的映象而言),而進制格式
    符號表    Standalone,包含符號表和tshell等