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