《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于VxWorks的產品映象設計
基于VxWorks的產品映象設計
電子設計應用
烽火通信科技股份有限公司 鄭更生 鄭煒煜
摘要: 基于VxWorks的產品映象設計, 本文分析了VxWorks的映象特點,設計了幾種VxWorks下產品映象的構造方案,并指出了這些構造設計的應用場合。
Abstract:
Key words :

摘 要: 本文分析了VxWorks的映象特點,設計了幾種VxWorks下產品映象的構造方案,并指出了這些構造設計的應用場合。
關鍵詞: VxWorks;映象;啟動代碼

    VxWorks是目前占壟斷地位的實時操作系統,在許多領域獲得廣泛應用,但其產品映象設計卻一直是令設計工程師頭疼的問題。本文在實踐驗證的基礎上,討論了基于VxWorks操作系統上的產品映象設計技術,具有很強的實用性。

VxWorks的映象分析
    VxWorks映象內容包括:代碼段(Text segment)、數據段(Data Segment)和符號起始塊段(BSS Segment)。其中,代碼段指可執行的指令集合;數據段指已經初始化的全局和靜態變量;符號起始塊段是未初始化的全局和靜態變量,ANSI C/C++中要求這些變量初始化為零。

    VxWorks映象按類型分為:可下載的映象(Loadable images)、基于ROM的映象(ROM-based images)和ROM駐留映象(ROM-Resident images)三種。Loadable images一般用于調試,ROM或Flash中的啟動代碼BSP打通調試通道后,將其從PC機上裝入RAM運行。ROM-based images整個映象在ROM或Flash中,由BSP從ROM或Flash中裝載整個映象到RAM中運行,并分為壓縮和非壓縮方式。ROM-resident images則只拷貝VxWorks的data和bss部分到RAM中運行,運行效率低。

基于VxWorks的產品映象設計
    本文bootable VxWorks映象即為ROM-based images,downloadable應用模塊對應Loadable images。VxWorks最終產品映象一般燒錄在Flash中,但由于Flash容量有限,并且為了動態更換程序方便,有時需要使用兩片Flash。其中,第一片小容量的Flash僅作為啟動和下載程序功能,采用插件式,以便替換;第二片大容量的Flash存放用戶應用代碼,多采用貼片方式。具體VxWorks的產品映象構造可使用以下四種技術方案。

方案一
Flash中存放BOOT+OS+ APPLICATION代碼(Tornado圖形環境下選項為bootable映象,rules=VxWorks_rom)。

    在Flash中的 BOOT啟動后,就將OS裝入RAM,跳到OS入口點,OS執行,并由OS最終調起用戶應用程序。這種設計最為簡潔,只需一片Flash裝載程序。缺點是,采用插件Flash容量很小,僅適合程序不大的場合;而采用貼片方式的Flash,則有一個頭疼的程序燒寫問題。

方案二
    第一片小容量Flash放BOOT代碼;第二片大容量的Flash放OS+APPLICATION代碼(Tornado圖形環境下選項為bootable映象,rules=VxWorks)。

    由VxWorks的Loadable images啟動過程可知,第一片Flash會將BOOT code拷貝到RAM_HIGH_ADRS為起址的RAM空間,BOOT code則將OS拷貝到RAM_LOW_ADRS為起址的RAM空間,并跳到OS入口點,即RAM_LOW_ADRS執行。所以這種方法是在第一片Flash啟動后,接著將第二片Flash中保存的OS+APPLICATION映象拷貝到RAM的RAM_LOW_ADRS ~ RAM_HIGH_ADRS之間,然后跳到RAM中的RAM_LOW_ADRS地址處即OS入口點執行。

方案三
    第一片小容量Flash放BOOT代碼;第二片大容量的Flash放BOOT+OS+APPLICATION(Tornado圖形環境下選項為bootable映象,rules=VxWorks_rom)。

    第一片BOOT啟動后,其代碼執行的最后一句跳至第二片Flash的啟動代碼romInit()處執行。第一片Flash代碼用來將程序下載到第二片Flash中,正常情況下則是簡單地啟動第二片Flash中已有的程序。在做第二片Flash中的BOOT+OS+APPLICATION映象時,需要將BSP中config.h文件的ROM_BASE_ADRS參數修改為第二片Flash的基址,表示基于第二片Flash啟動運行。這里第二片Flash執行并不等同復位CPU,只是又執行了一次與第一片Flash中上電復位后內容類似的初始化代碼并新啟動了一個OS,這個OS重新接管了SDRAM以及CPU的所有寄存器等,而第一片Flash中代碼不再執行。

    下面提供一種方法,通過第一片Flash中的代碼,可以將遠程PC機上編譯好的二進制可執行文件 rom.bin(含有BOOT+OS+APPLICATION)ftp到第二片Flash:
/*(1)將PC ftp Server上的二進制可執行文件rom.bin(含有BOOT+OS+APPLICATION)ftp到target的SDRAM緩沖區buf中*/
if (ftpXfer ("server", "fred", "magic", "", "RETR %s", "/usr/appl", "rom.bin",
&ctrlSock, &dataSock) == ERROR)
return (ERROR);
while ((nBytes = read (dataSock, buf, 5*1024)) > 0)
{
buf = buf + nBytes;
TotalNum = TotalNum + nBytes;
}
close (dataSock);
if (ftpReplyGet (ctrlSock, TRUE) != FTP_COMPLETE)
status = ERROR;
if (ftpCommand (ctrlSock, "QUIT", 0, 0, 0, 0, 0, 0) != FTP_COMPLETE)
status = ERROR;
close (ctrlSock);
/*(2)將ftp到SDRAM中的內容寫入第二片Flash中*/
writeFlash2(buf-TotalNum,FLASH2BASE,TotalNum);
/*(3)第一片Flash執行的最后一行代碼是跳轉到第二片Flash中第一條語句執行*/
FUNCPTR entry = (FUNCPTR)(FLASH2BASE+0x100);
go (entry); 

方案四
    第一片小容量Flash放BOOT+OS+LOADER代碼(Tornado圖形環境下選項為bootable映象,rules=VxWorks_rom);第二片大容量Flash放APPLICATION(Tornado圖形環境下選項為downloadable應用模塊且可重定位,rules=objects),此片Flash必須有文件系統。
   
    第一片Flash中是一個完整的產品映象,等同于BOOT+OS+APPLICATION,LOADER就是一個簡單的APPLICATION,利用VxWorks提供給用戶的目標模塊加載器loadlib來完成LOADER功能。在第一片Flash啟動運行到LOADER時,由LOADER的loadModule()函數將第二片Flash的APPLICATION文件動態加載入RAM,并與OS連接為可直接執行的映象,然后用symFindByName()找到應用代碼文件appl.o中用戶應用入口點"ApplEntry",最后跳到應用入口函數執行。

第一片Flash中的LOADER代碼如下:
FUNCPTR StartEntry;
fd = open ("/Flash2/appl.o", O_RDONLY,0);
loadModule(fd, LOAD_ALL_SYMBOLS);
symFindByName(sysSymTbl,“ApplEntry”,(char **)&StartEntry,&Type);
(*StartEntry)( );
其中,(1)loadModule(int fd,int loadFlag)函數從指定的文件fd中裝載目標模塊,并將Text、Data、BSS段放入目標內存池中;(2)SymFindByName(SYMTAB_ID symTblId, char* name, char** pValue, SYM_TYPE* pType)從符號表中搜尋與指定符號名匹配的符號,并將值考入pValue和pType中。

VxWorks產品映象設計方案比較
    以上方案中,第一種設計只適合代碼小的產品映象;第二、三、四種適合大容量代碼的映象設計。第二種設計啟動最快,但用戶可修改性差,不靈活。第三種設計啟動兩次,速度慢,但可以做到動態遠程更新包括BSP在內的整個第二片Flash中的映象。第四種必須在第二片Flash中有閃存文件系統TrueFFS,appl.o以文件形式存放其中,此設計最為復雜,但在增加遠程程序下載更新功能方面十分方便。以上映象構造方案在實際中都得到成功驗證,應用設計人員可以按照實際要求靈活選擇。

參考文獻
1 VxWorks Programmer’s Guide,5.4[M].WindRiver ,Inc.
2 Tornado User’s Guide,2.0[M].WindRiver ,Inc.
3 孔祥營,柏桂枝.嵌入式實時操作系統VxWorks及其開發環境Tornado[M].北京:中國電力出版社,2002.


 

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美一区午夜视频在线观看| 韩国一区二区在线观看| 欧美日韩色婷婷| 亚洲第一成人在线| 欧美日韩国产在线看| 亚洲一区二区三区免费视频| 久久亚洲春色中文字幕| 亚洲精品在线观看免费| 国产精品裸体一区二区三区| 久久综合色影院| 国产精品高清在线观看| 麻豆精品一区二区av白丝在线| 欧美激情在线播放| 国产日产精品一区二区三区四区的观看方式| 久久伊人免费视频| 欧美精品在线一区二区| 一本久久a久久免费精品不卡| 亚洲一区三区视频在线观看| 美女主播精品视频一二三四| 欧美在线高清| 欧美在线啊v一区| 欧美日韩一区二区国产| 午夜精品成人在线| 蜜臀av性久久久久蜜臀aⅴ| 欧美一区91| 亚洲国产欧美在线人成| 国产精品久久久久久久浪潮网站| 亚洲国产精品久久久久秋霞影院| 一本色道精品久久一区二区三区| 国产精品盗摄一区二区三区| 亚洲一区二区三区在线播放| 欧美影院在线| 欧美精品尤物在线| 欧美高清免费| 久久综合一区| 欧美日韩国产二区| 国产精品人人做人人爽| 一区二区三区无毛| 久久久久久久欧美精品| 国产精品久久婷婷六月丁香| 久久综合九色综合欧美狠狠| 亚洲另类黄色| 国产日韩高清一区二区三区在线| 激情自拍一区| 亚洲国产专区| 美日韩精品免费观看视频| 欧美成人自拍视频| 国产日韩欧美综合一区| 欧美伊人精品成人久久综合97| 亚洲精品视频啊美女在线直播| 老司机久久99久久精品播放免费| 亚洲高清在线视频| 黄色亚洲大片免费在线观看| 欧美日韩精品三区| 夜夜嗨av色一区二区不卡| 99这里有精品| 亚洲视频网在线直播| 日韩视频永久免费观看| 欧美激情一区二区三区在线| 1000部精品久久久久久久久| 亚洲视频香蕉人妖| 欧美一区二区在线播放| 亚洲欧美另类在线观看| 欧美午夜一区二区| 久久综合久久综合九色| 国产精品人人爽人人做我的可爱| 亚洲一区二区三区激情| 午夜精品在线| 国产视频一区在线观看一区免费| 日韩一级视频免费观看在线| 国产一区视频网站| 欧美日韩精品二区第二页| 久久不见久久见免费视频1| 一本色道久久88综合亚洲精品ⅰ| 日韩视频精品| 夜夜嗨av一区二区三区| 久久久久久久尹人综合网亚洲| 亚洲国产日韩欧美一区二区三区| 亚洲性感美女99在线| 校园春色综合网| 噜噜噜久久亚洲精品国产品小说| 夜夜爽99久久国产综合精品女不卡| 欧美无砖砖区免费| 一区二区三区中文在线观看| 一区二区在线看| 国产亚洲综合性久久久影院| 国产精品青草综合久久久久99| 伊人久久成人| 亚洲午夜一二三区视频| 韩国一区二区三区美女美女秀| 久久婷婷国产综合尤物精品| 亚洲一区二区三区视频播放| 久久不射网站| 久久国产欧美| 一二三区精品| 久久人人看视频| 欧美日韩在线视频观看| 欧美激情视频在线免费观看 欧美视频免费一| 精品69视频一区二区三区| 欧美日在线观看| 亚洲老司机av| 国产精品普通话对白| 久久99在线观看| 欧美黄色大片网站| 国产精品激情| 伊人成综合网伊人222| 欧美.日韩.国产.一区.二区| 国产精品亚洲综合色区韩国| 国产区精品视频| 欧美性做爰猛烈叫床潮| 亚洲视频在线观看网站| 亚洲一区二区三区成人在线视频精品| 亚洲黄色有码视频| 欧美无砖砖区免费| 91久久精品一区二区别| 久久久久久一区二区三区| 国内精品久久久久久久果冻传媒| 亚洲欧美一区二区视频| 激情五月***国产精品| 国产精品sm| 欧美亚洲三区| 亚洲欧美久久久| 国产日韩三区| 亚洲无线一线二线三线区别av| 国产乱人伦精品一区二区| 麻豆成人av| 性色av一区二区三区在线观看| 老司机免费视频一区二区三区| 99国产精品久久久久久久久久| 国产精品久久久久久久app| 亚洲精品久久| 欧美日韩一区二区欧美激情| 激情综合网址| 国产一区二区丝袜高跟鞋图片| 一区二区三区日韩欧美精品| 裸体女人亚洲精品一区| 亚洲精品乱码久久久久久黑人| 亚洲精品自在久久| 国产精品中文字幕欧美| 亚洲天堂成人| 欧美高清在线观看| 亚洲三级性片| 欧美一区二区三区播放老司机| 欧美精品 国产精品| 国内精品久久久久影院薰衣草| 亚洲精品乱码久久久久久日本蜜臀| 国产精品日韩| 性久久久久久久久久久久| 欧美性色aⅴ视频一区日韩精品| 欧美视频在线观看 亚洲欧| 欧美日韩午夜激情| 美女诱惑黄网站一区| 亚洲一区二区成人在线观看| 亚洲午夜激情网站| 欧美日韩国产综合久久| 免费久久久一本精品久久区| 亚洲精品美女在线观看播放| 国产亚洲精品久久久久婷婷瑜伽| 国产精品色婷婷久久58| 欧美午夜一区二区三区免费大片| 国产精品一区二区三区四区| 1769国内精品视频在线播放| 欧美日韩成人在线视频| 在线成人激情| 欧美日韩一二三四五区| 国产一区二区中文字幕免费看| 久久一区中文字幕| 久热精品视频在线观看一区| 亚洲色图综合久久| 国产一区二区久久久| 亚洲国产精彩中文乱码av在线播放| 亚洲欧美乱综合| 一区二区三区精品视频在线观看| 午夜一区在线| 亚洲麻豆视频| 欧美视频观看一区| 欧美国产高潮xxxx1819| 国产精品99久久久久久白浆小说| 美女主播精品视频一二三四| 亚洲综合色激情五月| 免费不卡欧美自拍视频| 亚洲欧美久久| 亚洲精品视频免费观看| 韩国美女久久| 欧美高清在线视频观看不卡| 欧美激情视频在线播放| 好吊视频一区二区三区四区| 日韩天堂在线观看| 免费成人性网站| 国产精品v欧美精品v日本精品动漫| 亚洲精品一区二区三区樱花| 先锋影音国产精品| 在线精品福利| 久久综合精品一区| 国产精品xnxxcom| 久久av老司机精品网站导航| 亚洲精品视频啊美女在线直播| 亚洲国产美女| 美国十次了思思久久精品导航| 国产婷婷色综合av蜜臀av| 国产精品免费网站在线观看| 一道本一区二区| 欧美视频二区| 亚洲国产视频直播| 国产欧美精品| 狠狠色狠色综合曰曰| 午夜欧美大尺度福利影院在线看| 欧美一区二区三区免费观看视频| 精品成人在线观看| 亚洲一区二区三区午夜| 欧美国产在线视频| 亚洲欧美综合一区| 亚洲欧美成aⅴ人在线观看| 欧美午夜精品伦理| 国产欧美一区二区三区另类精品| 欧美精品18| 在线亚洲免费视频| 久久精品女人的天堂av| 国产亚洲欧美色| 国产午夜一区二区三区| 久久精品国产亚洲a| 国产欧美日韩精品专区| 这里只有精品电影| 欧美激情第4页| 另类尿喷潮videofree| 老司机免费视频一区二区三区| 亚洲国产欧美不卡在线观看| 欧美成人一二三| 在线看欧美日韩| 国产精品mv在线观看| 亚洲麻豆视频| 国内一区二区三区| 亚洲福利在线视频| 国产欧美日韩在线播放| 亚洲在线视频网站| 亚洲欧美在线一区二区| 99re8这里有精品热视频免费| 麻豆精品一区二区av白丝在线| 欧美国产一区在线| 亚洲色在线视频| 欧美日韩中文精品| 欧美中文字幕在线观看| 亚洲女人av| 欧美伊人久久久久久久久影院| 激情综合亚洲| 国产精品第一页第二页第三页| 欧美激情一区二区三区在线| 性欧美xxxx大乳国产app| 欧美日韩美女在线观看| 亚洲精品综合精品自拍| 一区二区亚洲精品| 亚洲性视频h| 欧美日韩国产免费| 欧美视频第二页| 久久免费视频在线| 国产精品jizz在线观看美国| 性久久久久久| 91久久极品少妇xxxxⅹ软件| 久久夜色精品国产亚洲aⅴ| 国产精品三级久久久久久电影| 亚洲视频综合| 欧美精品激情blacked18| 欧美日韩在线一区二区三区| 在线看一区二区| 亚洲自拍偷拍网址| 一本一本大道香蕉久在线精品| 欧美在线在线| 在线日韩成人| 午夜老司机精品| 久久精品免视看| 欧美激情在线播放| 亚洲高清在线播放| 性色av一区二区三区| 欧美岛国在线观看| ●精品国产综合乱码久久久久| 欧美一区二区三区精品| 黄色成人精品网站| 久久精品久久99精品久久| 亚洲国产日韩在线| 国产精品swag| 欧美大片免费观看在线观看网站推荐| 亚洲人妖在线| 国产精品综合av一区二区国产馆| 国产伦精品一区二区三区四区免费| 欧美成人官网二区| 欧美日韩国产一区二区三区| 欧美日韩一级片在线观看| 国产精品任我爽爆在线播放| 久久久国际精品| 国产伦精品一区二区三区在线观看| 亚洲欧美日韩一区在线| 榴莲视频成人在线观看| 亚洲一区在线免费观看| 久久久久一区二区| 欧美在线观看网站| 欧美特黄一级大片| 欧美激情久久久久| 久久久一区二区三区| 亚洲欧美日韩中文在线制服| 久久成人综合视频| 99人久久精品视频最新地址| 一区二区三区自拍| 亚洲激情视频在线播放| 欧美一区二区三区成人| 亚洲曰本av电影| 久久国产日韩欧美| 国内精品免费在线观看| 欧美日本在线播放| 亚洲一区国产精品| 国产精品国产自产拍高清av王其| 在线观看日韩av| 翔田千里一区二区| 亚洲人成人一区二区三区| 麻豆精品视频在线观看视频| 国产一区二区日韩精品欧美精品| 亚洲电影在线免费观看| 亚洲欧美国产毛片在线| 性色一区二区三区| 国产日韩一区在线| 国产精品一区二区男女羞羞无遮挡| 国产亚洲成av人片在线观看桃| 玖玖在线精品| 欧美日韩综合在线| 精品成人一区二区| 亚洲一区二区av电影| 欧美日韩免费观看一区三区| 久久精品国产2020观看福利| 欧美视频在线免费看|