<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

VxWorks系統的映像及其裝載過(guò)程解析

作者: 時(shí)間:2012-03-27 來(lái)源:網(wǎng)絡(luò ) 收藏

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

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

  表1 VxWorks類(lèi)型映像

 

文件名

說(shuō)明

VxWorks

RAM運行的VxWorks映像

VxWorks_rom

ROM 自動(dòng)RAM 運行的VxWorks映像,不需要BootRom輔助

VxWorks_romCompress

VxWorks_rom 的壓縮形式

VxWorks_romResiden

ROM啟動(dòng)ROM運行的VxWorks映像,不需要BootRom輔助





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

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

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

上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>