• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

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

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

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

      VxWorks是一款優秀的實時多任務操作系統,以良好的持續發展能力、高性能的內核以及友好的用戶開發環境,在實時操作系統領域占據了重要的一席之地,受到越來越多的用戶的青睞。但是作為初學者而言,VxWorks提供了眾多的程序映像類型,在開發過程中十分容易讓人感到困惑,而且相關的參考資料對這個問題的描述也不集中,因此,本文擬對VxWorks的幾種映像作詳細的分析。

    1 系統映像
      VxWorks的映像主要包括兩大類,一類是BootRom類型,一類是VxWorks類型。
      (1)BootRom類型
      BootRom類型映像是一個最小化、專用的VxWorks引導映像,實現最少的系統初始化,主要用于啟動裝載VxWorks映像,其功能類似于PC機的BIOS。BootRom運行時也建立起多任務環境,包括usrRoot任務、網絡任務、TFFS任務和FTP任務等。引導映像在運行時,可能在 ROM/Flash中執行(例如ROM駐留型引導映像),也可能在RAM 中執行。在系統中其對應的編譯規則文件是rules.bsp。
       BootRom類型分為三種:BootRom_res、BootRom_uncmp和BootRom。第一種是一直運行在rom 中的映象,只把data段拷貝到ram 里面;第二種是非壓縮方式的映象,data段和text段都要拷貝到ram里面,并在ram里面運行;第三種是壓縮方式的映象,生成的時候編譯器會把除掉 romlnit.s和bootInit.c之外的目標文件壓縮并“匯編”成一個bootrom.Z.s,最后和romInit.o, bootInit.o,version.o進行鏈接,生成bootrom映像。所以它也是要全部拷貝到ram 中,并必須要進行解壓縮的工作。而這些工作基本上都是在bootInit.c中進行的。
      (2)VxWorks類型
      VxWorks類型映像是系統的主映像,也即是系統最終要運行的映像。該映像在運行時至少有一部分(如:數據段和BSS段)需要在RAM中運行。在系統中其對應的編譯規則文件是rules.vxWorks。
    VxWorks類型映像分為四種:VxWorks、VxWorks_rom、VxWorks_romResident和VxWorks_romCompress。如表1。

      表1 VxWorks類型映像

     

    文件名

    說明

    VxWorks

    RAM運行的VxWorks映像

    VxWorks_rom

    ROM 自動RAM 運行的VxWorks映像,不需要BootRom輔助

    VxWorks_romCompress

    VxWorks_rom 的壓縮形式

    VxWorks_romResiden

    ROM啟動ROM運行的VxWorks映像,不需要BootRom輔助





      (3)BootRom 類型映像和VxWorks類型映像的聯系與區別
      對于沒有自啟動功能的 VxWorks類型映像(例如:VxWorks型),在映像運行前就需要一段程序將該映像拷貝到RAM 中運行,而BootRom類型映像在此時就扮演了這種“搬運工”的角色,當VxWorks系統下載完畢,BootRom的任務也就完成了。二者在系統初始化的時候,所做的功能基本相同,但是區別在于BootRom 類型映像調用bootConfig.c,而VxWorks類型映像調用usrConfig.c。

    2 映像裝載過程
      (1)VxWorks_romCompress和VxWorks_rom(如圖1)
             

      將不包含VxWorks二進制映像的引導程序data段復制到RAM 中的RAM_HIGH_ADRS。
      冷啟動后,將從LOCAL_MEM_LOCAL_ADRS+RESER-VED的內存地址到RAM_HIGH_ADRS-STACK_SAVE的內存地址清零。將從引導程序bss段末端到LOCAL_MEM_LOCAL_ADRS+LOCAL_MEM_SIZE-USER_RESERVED_MEM的內存也清零。
      拷貝VxWorks時,VxWorks_rom 類型映像直接拷貝到以RAM_LOW_ADRS為開始的RAM 中,而VxWorks_rom-Compress類型的映像將壓縮的VxWorks解壓到以RAM_LOW_ADRS為開始的RAM 中。
    linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 长宁区| 安多县| 平罗县| 行唐县| 兴海县| 那曲县| 和平区| 开化县| 垦利县| 庐江县| 和平县| 宜兰县| 沿河| 柳江县| 乌鲁木齐县| 崇礼县| 宜丰县| 常德市| 泰安市| 达拉特旗| 福贡县| 东安县| 松桃| 台前县| 泾源县| 溧阳市| 镇安县| 淮安市| 郧西县| 天等县| 西昌市| 湟中县| 清徐县| 石楼县| 镇安县| 和平区| 游戏| 铁力市| 读书| 安仁县| 昔阳县|