新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > VxWorks系統的映像及其裝載過程解析

        VxWorks系統的映像及其裝載過程解析

        作者: 時間:2012-03-27 來源:網絡 收藏

          跳到位于RAM_LOW_ADRS地址的解壓的VxWorks的入口點,引導代碼和堆棧空間將被覆蓋。
          (2)VxWorks_romResident(如圖2)
                    
          該映像包含引導代碼,在重啟時清空RAM,引導代碼只將data段拷貝到RAM 中的RAM_LOW_ADRS處。而系統的運行是在ROM 中進行的。
          相對其他映像,這種映像啟動速度快,需要的RAM 空間少,但是運行速度慢。
          (3)VxWorks

          該映像本身不包含引導程序,需要一個獨立的引導程序從本地存儲器或者經由網絡獲取該映像,然后將其下載到RAM中的RAM_LOW_LADRS處運行。這個獨立的引導程序就是上文提到的BootRom 類型映像,它可以分為BootRom_res、BootRom_uncmp和BootRom三種。在開發過程中,獨立的引導程序需要使用傳統的BSP機制來配置和構建。
        圖3所示是壓縮型的引導程序映像BootRom的標準啟動流程,而BootRom_uncmp是非壓縮型的引導程序映像,BootRom_res是常駐ROM 型的引導程序映像。
                  
          對BootRom型的引導映像來說,啟動過程稍微復雜點。它包括壓縮部分跟非壓縮部分,這個無壓縮的部分就是romInit.s+ BootInit.c,稱為Bootstrap。一上電時,Bootstrap就在Flash/ROM中執行,入口點就是romInit.s的第一條語句。Bootstrap首先把自己拷貝到RAM_LOW_ADRS (因為此時還沒有加載VxWorks主映像,所以先借用一下),然后解壓縮自身到RAM_HIGH_ADRS。然后跳到RAM_HIGH_ADRS運行引導程序。引導代碼執行后,把VxWorks映像裝入到起始地址為RAM_LOW_ ADRS的RAM 中(覆蓋掉了先前拷貝的bootstrap程序),然后跳轉到VxWorks映像裝入點運行。
          對BootRom_uncmp來說,過程與BootRom 相似,只不過一開始就把自身拷貝到RAM_HIGH_ADRS地址上運行,省去了解壓縮的過程。
          對BootRom_res類型映像來說,僅僅將它的數據段拷貝到RAM_HIGH_ADRS位置。然后在Flash/ROM中運行引導程序。其余過程同上。
          采用獨立引導程序的VxWorks系統,不但可以通過本地存儲器(如硬盤)獲取VxWorks主映像,還可以通過網絡獲取。圖4所示就是這個過程。被下載的VxWorks主映像位于RAM中的RAM_LOW_ADRS處,映像的頂端叫FREE_RAM_ADRS。下載完VxWorks后,引導程序跳到下載映像的sysInit()入口點處(位于RAM_LOW_ADRS)。從這以后,引導程序就完成了它的工作。
                   
        3 結束語
          總之,VxWorks系統包括多種不同的映像,各自之間的差別造成裝載過程的不同,正確的理解這些差異,靈活地使用這些映像,將給開發者帶來事半功倍的效果。
        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 象山县| 阳东县| 蒙山县| 虎林市| 祁东县| 灵武市| 赤城县| 盐山县| 车险| 丰顺县| 鄂托克前旗| 磐安县| 香港 | 昭觉县| 喀喇沁旗| 高清| 大田县| 丹巴县| 藁城市| 兴宁市| 子洲县| 四平市| 栾川县| 四川省| 玛曲县| 庆城县| 棋牌| 彰化市| 承德市| 木里| 商洛市| 武定县| 江津市| 松滋市| 长泰县| 临漳县| 自治县| 县级市| 灌阳县| 安达市| 江孜县|