VxWorks Tornado基礎(chǔ)構(gòu)成配置
1.1Tornado組件
本文引用地址:http://cafeforensic.com/article/201609/304991.htm開(kāi)始之前先考慮一下下面5個(gè)問(wèn)題,后面會(huì)給出這些問(wèn)題的答案。
什么是Tornado?
什么是VxWorks?
怎樣使用Tornado和VxWorks?
Tornado都提供了哪些方便?
這些文件存放在什么地方?
什么是Tornado?
┌─────────┐ ┌─────────┐
│Real-Time System │ │Development Tools│
└─────────┘ └─────────┘
│ Networking │
┴────────┬─────────┴
Tornado是一個(gè)開(kāi)發(fā)實(shí)時(shí)嵌入式應(yīng)用程序的集成開(kāi)發(fā)環(huán)境。
它主要包括下列組件:
·VxWorks實(shí)時(shí)操作系統(tǒng),用來(lái)嵌入式或運(yùn)行時(shí)間要求嚴(yán)格的應(yīng)用程序。
·測(cè)試、定時(shí)和調(diào)試用的開(kāi)發(fā)工具。
·網(wǎng)絡(luò)組件允許進(jìn)行下列操作
·處理器內(nèi)部通信
·遠(yuǎn)程文件訪問(wèn)
·遠(yuǎn)程命令/函數(shù)執(zhí)行
·通過(guò)網(wǎng)絡(luò)啟動(dòng)
開(kāi)發(fā)工具
Tornado開(kāi)發(fā)工具包括:
·Launch - 加載Tornado工具
·WindSh - 與目標(biāo)機(jī)(Target)進(jìn)行交互(只要成功運(yùn)行目標(biāo)服務(wù)器就可以啟動(dòng)windsh,方法:?jiǎn)螕魌ornado的tools->shell菜單項(xiàng)即可啟動(dòng) windsh)
·CrossWind - 源碼級(jí)調(diào)試器
·Browser - 顯示系統(tǒng)信息
·Project Facility - 配置應(yīng)用程序或者VxWorks
·WindView - 多任務(wù)應(yīng)用程序分析器
·Simulator - 在主機(jī)操作系統(tǒng)上運(yùn)行的VxWorks目標(biāo)機(jī)仿真程序
這些工具都可以通過(guò)Tcl定制,包括:
·增加新的功能
·定制用戶接口
·利用一些常駐目標(biāo)機(jī)工具
幾乎所有的Wind River工具都可以通過(guò)Tool Command Language(Tcl)定制,它是一個(gè)類似于Bourne Shell或C的腳本語(yǔ)言。
更多關(guān)于Tcl的信息參見(jiàn)《Tcl and the Tk TollKit》,John Ousterhout著。
Tcl允許:
·增加用戶定義命令
·定制Tornado GUI,增加新菜單項(xiàng)、按鈕等等。
Tornado可以運(yùn)行在Solaris 2.51,2.6和2.7上;Windows 95,98和NT上;以及HP-UX 10主機(jī)上。
UNIX和Windows下的一些GUI定制可能存在不一致。
Tornado綁定了對(duì)GNU C++的支持。
實(shí)時(shí)系統(tǒng)
┌────────┐
┌───────┐ │ Memory Mgmt.│ ┌──────┐
│ File System │ └────────┘ │ I/O System │
└───────┘ Kernel └──────┘
┌───────┐ ┌───────┐
│Device Driver │ │ Network Stack│
└───────┘ └───────┘
實(shí)時(shí)操作系統(tǒng)中運(yùn)行的應(yīng)用程序可以有嚴(yán)格的響應(yīng)時(shí)間。(即可以制定多少時(shí)間內(nèi)必須做出響應(yīng)或報(bào)錯(cuò))
實(shí)時(shí)操作系統(tǒng)具有多任務(wù)內(nèi)核,完成以下功能:
·實(shí)時(shí)任務(wù)調(diào)度(基于優(yōu)先級(jí)的搶占式調(diào)度)
·任務(wù)間的通信
·互斥
其他標(biāo)準(zhǔn)外設(shè)都是以庫(kù)的形式提供出來(lái),不作為內(nèi)核部分。
實(shí)時(shí)操作系統(tǒng)與非實(shí)時(shí)系統(tǒng)的區(qū)別:
·基于優(yōu)先級(jí)的搶占式調(diào)度
·響應(yīng)速度更快
·內(nèi)核更小并且可以配置(微內(nèi)核架構(gòu))
性能優(yōu)勢(shì)
所有任務(wù)運(yùn)行于共享地址空間內(nèi)(windows下進(jìn)程運(yùn)行在虛擬地址空間內(nèi))
RAM fooLib tTaskA
int fooVal; ┌────fooSet(4)
text void fooSet(int x){ ─┤ tTaskB
data ─────fooVal = x; └──────────fooSet(99)
bss }
所有任務(wù)運(yùn)行于特權(quán)模式。
·在Unix/NT系統(tǒng)中,所有進(jìn)程獨(dú)立存儲(chǔ)各自的data段和bss段,共享text段,即所有的進(jìn)程都調(diào)用同一地址下的text段執(zhí)行相同的代碼。
·在VxWorks系統(tǒng)中,當(dāng)任務(wù)訪問(wèn)到某個(gè)模塊的text、data或bss段時(shí),所有任務(wù)都是訪問(wèn)的相同物理地址。
·所有任務(wù)都運(yùn)行于共享地址空間內(nèi)
+使得任務(wù)間的通信更加簡(jiǎn)單快捷
+使得上下文的切換更加迅速(不需要保存和回復(fù)虛擬地址上下文關(guān)系)
+一個(gè)不正常的任務(wù)可能導(dǎo)致整個(gè)系統(tǒng)崩潰
·所有任務(wù)都運(yùn)行于特權(quán)模式
+沒(méi)有系統(tǒng)調(diào)用的開(kāi)銷,所有VxWorks系統(tǒng)程序的調(diào)用都像普通程序調(diào)用一樣。
交叉開(kāi)發(fā)
Host Target
┌───────┐ RS-232 ┌──────┐
│ Tornado │ ──────────── │ VxWorks │
└───────┴─┐ ┌─┴──────┘
ethernet ─────┴─────────┴─────────
上圖為典型的Tornado開(kāi)發(fā)環(huán)境配置
·在host機(jī)上通過(guò)一些工具完成編碼和編譯
+編輯
+通過(guò)界面或者命令行完成編譯/裝配/鏈接
+源代碼管理(ClearCase, PVCS, Visual Source Safe,...)
·通過(guò)host上的Tornado工具完成target上的測(cè)試/調(diào)試工作
+下載目標(biāo)模塊
+執(zhí)行
+源碼級(jí)調(diào)試
+性能監(jiān)測(cè)
·典型的開(kāi)發(fā)周期循環(huán)包括在主機(jī)上反復(fù)的編碼和編譯,下載到目標(biāo)機(jī),并在目標(biāo)機(jī)上測(cè)試代碼的運(yùn)行,然后再回到主機(jī)對(duì)代碼做進(jìn)一步的修改。
Tornado發(fā)布
·所支持板卡的Boot Rom
+與板卡有關(guān)
+通過(guò)網(wǎng)絡(luò)從主機(jī)上下載vxworks
+Turnkey for standard board(不能理解-_-)
·產(chǎn)品的CD-ROM包括
+運(yùn)行在主機(jī)上的Tornado工具
+運(yùn)行于目標(biāo)機(jī)的VxWorks操作系統(tǒng)
+風(fēng)河公司支持的bsp
·編譯器等
·關(guān)于VxWorks和Tornado的幫助手冊(cè)
·一些SPARC板采用OpenBoot方式下載bootRom程序,然后啟動(dòng)VxWorks
·Tornado的安裝目錄中自帶包括編譯器、連接器在內(nèi)的GNU工具包。Tornado2.0板與Tornado1.0.1板使用同樣的C編譯器GCC2.7.2;仿真器(simulator)下的C++代碼的編譯器則基于EGCS1.0.2或EGCS1.0.3。
評(píng)論