VxWorks Tornado基礎(chǔ)構(gòu)成配置
1.1Tornado組件
開始之前先考慮一下下面5個(gè)問題,后面會(huì)給出這些問題的答案。
什么是Tornado?
什么是VxWorks?
怎樣使用Tornado和VxWorks?
Tornado都提供了哪些方便?
這些文件存放在什么地方?
什么是Tornado?
┌─────────┐ ┌─────────┐
│Real-Time System │ │Development Tools│
└─────────┘ └─────────┘
│ Networking │
┴────────┬─────────┴
Tornado是一個(gè)開發(fā)實(shí)時(shí)嵌入式應(yīng)用程序的集成開發(fā)環(huán)境。
它主要包括下列組件:
·VxWorks實(shí)時(shí)操作系統(tǒng),用來嵌入式或運(yùn)行時(shí)間要求嚴(yán)格的應(yīng)用程序。
·測試、定時(shí)和調(diào)試用的開發(fā)工具。
·網(wǎng)絡(luò)組件允許進(jìn)行下列操作
·處理器內(nèi)部通信
·遠(yuǎn)程文件訪問
·遠(yuǎn)程命令/函數(shù)執(zhí)行
·通過網(wǎng)絡(luò)啟動(dòng)
開發(fā)工具
Tornado開發(fā)工具包括:
·Launch - 加載Tornado工具
·WindSh - 與目標(biāo)機(jī)(Target)進(jìn)行交互(只要成功運(yùn)行目標(biāo)服務(wù)器就可以啟動(dòng)windsh,方法:單擊tornado的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ī)仿真程序
這些工具都可以通過Tcl定制,包括:
·增加新的功能
·定制用戶接口
·利用一些常駐目標(biāo)機(jī)工具
幾乎所有的Wind River工具都可以通過Tool Command Language(Tcl)定制,它是一個(gè)類似于Bourne Shell或C的腳本語言。
更多關(guān)于Tcl的信息參見《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è)都是以庫的形式提供出來,不作為內(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ù)訪問到某個(gè)模塊的text、data或bss段時(shí),所有任務(wù)都是訪問的相同物理地址。
·所有任務(wù)都運(yùn)行于共享地址空間內(nèi)
+使得任務(wù)間的通信更加簡單快捷
+使得上下文的切換更加迅速(不需要保存和回復(fù)虛擬地址上下文關(guān)系)
+一個(gè)不正常的任務(wù)可能導(dǎo)致整個(gè)系統(tǒng)崩潰
·所有任務(wù)都運(yùn)行于特權(quán)模式
+沒有系統(tǒng)調(diào)用的開銷,所有VxWorks系統(tǒng)程序的調(diào)用都像普通程序調(diào)用一樣。
交叉開發(fā)
Host Target
┌───────┐ RS-232 ┌──────┐
│ Tornado │ ──────────── │ VxWorks │
└───────┴─┐ ┌─┴──────┘
ethernet ─────┴─────────┴─────────
上圖為典型的Tornado開發(fā)環(huán)境配置
·在host機(jī)上通過一些工具完成編碼和編譯
+編輯
+通過界面或者命令行完成編譯/裝配/鏈接
+源代碼管理(ClearCase, PVCS, Visual Source Safe,...)
·通過host上的Tornado工具完成target上的測試/調(diào)試工作
+下載目標(biāo)模塊
+執(zhí)行
+源碼級(jí)調(diào)試
+性能監(jiān)測
·典型的開發(fā)周期循環(huán)包括在主機(jī)上反復(fù)的編碼和編譯,下載到目標(biāo)機(jī),并在目標(biāo)機(jī)上測試代碼的運(yùn)行,然后再回到主機(jī)對(duì)代碼做進(jìn)一步的修改。
Tornado發(fā)布
·所支持板卡的Boot Rom
+與板卡有關(guān)
+通過網(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。[!--empirenews.page--]
·更詳細(xì)的安裝Tornado方法請(qǐng)參考Wind River Products Installation Guide
·www.wrs.com/corporate/support/prodbullet/T2.0上有一些相關(guān)信息,比如對(duì)于已知問題的解釋、產(chǎn)品公告等。
可移植性
┌───────┐
│ HSP │
└───────┘
┌───────┐ ┌───┐
│ Generic ││ │
│ VxWorks ││ │
└───────┘ │ │
┌───────┐ │ WDB │
│ Arch ││ Agent │
└───────┘ │ │
┌───────┐ │ │
│ BSP │ │ │
└───────┘ └───┘
·VxWorks中大部分是與板卡無關(guān)的,VxWorks與板卡有關(guān)的部分有:
+Arch層(例如:MC680X0、PPC、i960、x86、arm)
+與板卡有關(guān)部分(例如:硬件初始化、VME總線接口、定時(shí)功能等)
+與主機(jī)有關(guān)的部分(例如:交叉編譯器、tornado工具和target server)
·因?yàn)閃DB調(diào)試器獨(dú)立于VxWorks操作系統(tǒng),所以能夠直接操作目標(biāo)機(jī)并在遠(yuǎn)端執(zhí)行源碼級(jí)系統(tǒng)調(diào)試。
·BSP是Board Support Package的縮寫,是VxWorks中與板卡密切相關(guān)的部分。HSP是Host Support Package的縮寫,是Tornado中與主機(jī)密切相關(guān)的部分。
Tornado目錄樹
┌host Tornado一些主機(jī)上的工具
├SETUP 安裝程序
/usr/wind ───┼share shared XDR代碼
├target VxWorks操作系統(tǒng)以及板級(jí)支持包
└docs html在線幫助文檔
·shared XDR代碼用于在主機(jī)工具和目標(biāo)機(jī)之間傳輸數(shù)據(jù),eXternal Data Representation是RPC(Remote Procedure Call)應(yīng)用程序在網(wǎng)絡(luò)上發(fā)送數(shù)據(jù)的一種標(biāo)準(zhǔn)格式。
·Tornado目錄樹可以被安裝到任意目錄中。約定安裝目錄/usr/wind/指wind目錄,對(duì)于Windows主機(jī)來說wind目錄可能位于C:\Tornado目錄下。
Host目錄樹
┌include Tornado工具的頭文件
├src VxColor demo源文件
├host-os 主機(jī)相關(guān)工具
│ ├bin 主機(jī)上Tornado和GNU的執(zhí)行程序
host ───┤ └lib Tornado工具運(yùn)行庫
├resource GUI,Tcl以及幫助支持文件
└tcl 標(biāo)準(zhǔn)Tcl發(fā)布
·host-os目錄命名規(guī)則為硬件-操作系統(tǒng),正確命名如下:
x86-win32 所有的Windows主機(jī)
sun4-solaris Solaris主機(jī)
parisc-hpux10 HP-UX主機(jī)
Target目錄樹
┌config 用來配置和編譯VxWorks的文件
│ ├all 通用配置文件
│ ├bspName 板級(jí)支持包
│ └comps VxWorks組件描述文件以及配置
target───┼proj 已編譯的VxWorks自啟動(dòng)工程
├h VxWorks頭文件
├lib VxWorks提供的庫文件
├src 部分VxWorks源代碼
└unsupported 工具、驅(qū)動(dòng)
·啟動(dòng)程序以及VxWorks啟動(dòng)代碼位于wind/target/config/all目錄中。
·BSP源代碼位于wind/target/config/bspName/sysLib.c中。
+該文件可能包含BSP目錄中的其他文件,以及wind/target/src/drv下的通用驅(qū)動(dòng)文件(例如:位于wind/target/src/drv/timer目錄下的定時(shí)程序)
+標(biāo)準(zhǔn)發(fā)布版中不包括網(wǎng)絡(luò)和SCSI驅(qū)動(dòng)源碼
·VxWorks庫文件通常是由一個(gè)目標(biāo)模塊組成,有時(shí)也會(huì)由多個(gè)目標(biāo)模塊以及與之相關(guān)的頭文件組成,例如:
Library Routine Include file(s)
----------- ------------ -------------------
taskLib taskSpawn taskLib.h
memPartLib malloc stdlib.h
semLib semTake semLib.h
sysLib sysHwInit sysLib.h
1.2幫助
幫助手冊(cè)
在線幫助
用戶群
技術(shù)支持
WindSurf(風(fēng)河公司的一個(gè)網(wǎng)站,類似于論壇,上面有各種常見問題以及解決方法,可以發(fā)帖提問,有高人指點(diǎn))
概述
Tornado提供各種類型的幫助(括號(hào)中為手冊(cè)英文全稱)
·關(guān)于主機(jī)上的工具
+Tornado用戶手冊(cè)(Tornado User's Guide)
+GNU工具用戶手冊(cè)(GNU ToolKit User's Guide)
+WindView用戶手冊(cè)(WindView User's Guide)
·關(guān)于VxWorks操作系統(tǒng)
+VxWorks程序員指南(VxWorks Programmer's Guide)
+VxWorks網(wǎng)絡(luò)程序員指南(VxWorks Network Programmer's Guide)
+VxWorks參考手冊(cè)(VxWorks Reference Manual)
+BSP參考手冊(cè)(HTML)(BSP Reference)
·Tornado在線幫助
·技術(shù)支持(如果購買了的話)
·其他手冊(cè)包括
+Wind River Products Installation Guide.
+Customer Support User’s Guide
+Tornado Release Notes.
+Tornado API Guide.
+Debugging with GDB
+GNU Make
·Tornado在線幫助
+所有Tornado和VxWorks幫助手冊(cè)都提供HTML版,位于wind/docs目錄下。
+在Windows和UNIX下可以通過Help按鈕打開幫助
+在Windows主機(jī)上通過F1按鈕還能打開一些與上下文有關(guān)的幫助。
其他資源
·包含VxWorks和嵌入式編程主題的新聞組:comp.os.vxworks
·培訓(xùn)課程
+Tornado設(shè)備驅(qū)動(dòng)編寫(Tornado Device Driver Workshop)
+Tornado BSP培訓(xùn)(Tornado BSP Training Workshop)
+Tornado工具培訓(xùn)(Tornado Tools Training Workshop)
·提供下列問題的技術(shù)支持
+安裝時(shí)問題以及安裝媒體出錯(cuò)
+WRS軟件、文檔和服務(wù)問題
+幫助理解WRS產(chǎn)品功能
·WindSurf自助網(wǎng)頁提供:搜索引擎、FAQ、補(bǔ)丁、文檔更新以及已知問題清單等。
·其他需要注意的新聞組包括
+comp.os.realtime-實(shí)時(shí)主題
+comp.arch.bus.vmebus
+comp.arch.embedded
·可以購買技術(shù)支持[!--empirenews.page--]
+通過Tornado中的Support菜單填寫Tornado Support Request表單,并發(fā)送郵件到support@wrs.com。
+在美國,太平洋時(shí)區(qū)早上5點(diǎn)到下午5點(diǎn)之間撥打1-800-USA-4WRS。其他地方請(qǐng)聯(lián)系當(dāng)?shù)氐腤RS辦事處。
·可以通過Wind River Systems主頁http://www.wrs.com訪問WindSurf網(wǎng)站,點(diǎn)擊Customer Support頁面。登錄WindSurf需要注冊(cè)用戶ID和密碼。
1.3 硬件/軟件配置
配置目標(biāo)機(jī)硬件
配置主機(jī)軟件
設(shè)置交叉開發(fā)環(huán)境
執(zhí)行交叉開發(fā)前必須先完成以下操作:
·安裝目標(biāo)機(jī)硬件
·定義主機(jī)環(huán)境變量,配置網(wǎng)絡(luò)軟件
·啟動(dòng)Tornado registry: wtxregd。
+wtxregd管理target servers列表。各種工具通過名字在registry中查找target servers
·指定目標(biāo)機(jī)啟動(dòng)參數(shù)并啟動(dòng)目標(biāo)機(jī)
·配置并加載target server
+每個(gè)target server管理主機(jī)工具與特定目標(biāo)機(jī)之間的交互
·典型的配置為每個(gè)工程有一個(gè)registry程序。
·Tornado的架構(gòu)允許registry、target servers以及Tornado工具運(yùn)行于網(wǎng)絡(luò)上的不同主機(jī)上。
目標(biāo)機(jī)硬件配置