第二講-嵌入式操作系統(tǒng)VxWorks及其開(kāi)發(fā)工具Tornado_第1頁(yè)
第二講-嵌入式操作系統(tǒng)VxWorks及其開(kāi)發(fā)工具Tornado_第2頁(yè)
第二講-嵌入式操作系統(tǒng)VxWorks及其開(kāi)發(fā)工具Tornado_第3頁(yè)
第二講-嵌入式操作系統(tǒng)VxWorks及其開(kāi)發(fā)工具Tornado_第4頁(yè)
第二講-嵌入式操作系統(tǒng)VxWorks及其開(kāi)發(fā)工具Tornado_第5頁(yè)
已閱讀5頁(yè),還剩66頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1第二講:嵌入式操作系統(tǒng)VxWorks及其開(kāi)發(fā)工具Tornado主講人:

辦公地址:

聯(lián)系方式:2上節(jié)課主要內(nèi)容:為什么要學(xué)習(xí)嵌入式技術(shù)嵌入式系統(tǒng)概述嵌入式系統(tǒng)的應(yīng)用嵌入式實(shí)時(shí)系統(tǒng)基礎(chǔ)3132基礎(chǔ)知識(shí)介紹交叉開(kāi)發(fā)環(huán)境的建立方法Tornado工具及其使用方法4常用的軟件調(diào)試開(kāi)發(fā)方法4什么是VxWorks?為什么VxWorks被廣泛采用?VxWorks系統(tǒng)與通用操作系統(tǒng)的對(duì)比什么是Tornado?Tornado的工具及其開(kāi)發(fā)環(huán)境Tornado的目錄結(jié)構(gòu)Tornado的主要目錄結(jié)構(gòu)5什么是VxWorks?VxWorks操作系統(tǒng)是美國(guó)風(fēng)河公司(WindRiverSystem公司,WRS)于1983年設(shè)計(jì)開(kāi)發(fā)的一種運(yùn)行在目標(biāo)機(jī)上的高性能、可裁減的嵌入式強(qiáng)實(shí)時(shí)操作系統(tǒng)。它憑借著良好的可持續(xù)發(fā)展能力、高性能的內(nèi)核以及友好的用戶(hù)開(kāi)發(fā)環(huán)境,在嵌入式實(shí)時(shí)操作系統(tǒng)領(lǐng)域占據(jù)了重要一席。VxWorks系統(tǒng)具備高可靠性和實(shí)時(shí)性,目前被廣泛地應(yīng)用在通信、軍事、航空、航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中。如美國(guó)的F-16戰(zhàn)斗機(jī)、FA-18戰(zhàn)斗機(jī)、B-2隱形轟炸機(jī)、愛(ài)國(guó)者導(dǎo)彈上、火星探測(cè)器等均使用了VxWorks操作系統(tǒng)。6什么是VxWorks?高性能系統(tǒng)內(nèi)核Wind

?多任務(wù)調(diào)度(基于優(yōu)先級(jí)搶占方式的實(shí)時(shí)調(diào)度算法) ?內(nèi)部任務(wù)的通訊其它標(biāo)準(zhǔn)工具 ?設(shè)備驅(qū)動(dòng) ?文件系統(tǒng) ?I/O系統(tǒng) ?內(nèi)存管理 ?網(wǎng)絡(luò)協(xié)議棧

VxWorks的主要組成如下:7為什么VxWorks被廣泛采用?可靠性考慮操作系統(tǒng)的用戶(hù)希望在一個(gè)工作穩(wěn)定、可以信賴(lài)的環(huán)境中工作,而穩(wěn)定、可靠是VxWorks的一個(gè)突出優(yōu)點(diǎn)。實(shí)時(shí)性考慮可裁剪性考慮由于存儲(chǔ)空間和資源的限制,及提高運(yùn)行效率考慮,用戶(hù)在使用嵌入式操作系統(tǒng)時(shí),并不是操作系統(tǒng)的每一個(gè)部件都要用到,例如圖形顯示、文件系統(tǒng)以及一些設(shè)備驅(qū)動(dòng)在某些嵌入式系統(tǒng)中往往并不使用。VxWorks由一個(gè)8kB的內(nèi)核和一些可裁剪的系統(tǒng)模塊組成,可以根據(jù)需要很容易的定制。8為什么VxWorks被廣泛采用?軟硬件支持能力考慮鑒于VxWorks系統(tǒng)擁有良好的聲譽(yù)和眾多的用戶(hù),并且具有較好的開(kāi)放性,很多硬件廠(chǎng)商提供了基于VxWorks平臺(tái)的驅(qū)動(dòng)支持,也有很多軟件廠(chǎng)商開(kāi)發(fā)了基于VxWorks的第三方軟件產(chǎn)品。軟硬件支持能力較強(qiáng)。易用性考慮開(kāi)發(fā)系統(tǒng)的易用性是大多數(shù)用戶(hù)非常關(guān)心的問(wèn)題,WRS公司開(kāi)發(fā)了一個(gè)用于VxWorks系統(tǒng)應(yīng)用開(kāi)發(fā)的集成開(kāi)發(fā)環(huán)境Tornado,提供了友好的、便捷的嵌入式軟件開(kāi)發(fā)方法。9VxWorks操作系統(tǒng)與通用操作系統(tǒng)的對(duì)比實(shí)時(shí)與非實(shí)時(shí)(實(shí)時(shí)處理、分時(shí)處理)“更快”(從實(shí)時(shí)性角度講,實(shí)時(shí)性好)系統(tǒng)更小,并且可配置(采用微內(nèi)核結(jié)構(gòu))所有任務(wù)都運(yùn)行在超級(jí)用戶(hù)模式 ?所有的VxWorks工具都可以被作為一個(gè)一般的函數(shù)被調(diào)用。10所有任務(wù)都存在于公共地址空間內(nèi)(代碼段、數(shù)據(jù)段、堆棧段) ?可以使任務(wù)間的通訊更快更容易 ?可以使任務(wù)間上下文切換更快 ?一個(gè)任務(wù)的不正常可能會(huì)導(dǎo)致其它任務(wù)出錯(cuò)11什么是Tornado?Tornado是一個(gè)用于開(kāi)發(fā)實(shí)時(shí)嵌入式應(yīng)用的集成開(kāi)發(fā)環(huán)境,即用于開(kāi)發(fā)基于VxWorks系統(tǒng)的嵌入式軟件的開(kāi)發(fā)工具,與Windows系統(tǒng)中的VC類(lèi)似。它把VxWorks系統(tǒng)編程的不同方面都集成到同一個(gè)環(huán)境里,允許開(kāi)發(fā)者在主機(jī)上組織、編寫(xiě)和編譯應(yīng)用程序,然后下載到目標(biāo)機(jī),并運(yùn)行和調(diào)試它們,提供了一種高效的開(kāi)發(fā)實(shí)時(shí)嵌入式應(yīng)用的方法和工具。12什么是Tornado?Tornado的主要組成

?

VxWorks實(shí)時(shí)操作系統(tǒng):以源碼或目標(biāo)文件的形式存在于Tornado安裝目錄下,可更改或裁剪,在發(fā)布最終系統(tǒng)時(shí)與應(yīng)用程序一同編譯。

?集成開(kāi)發(fā)環(huán)境:幫助管理和構(gòu)建工程,并組織和管理主機(jī)與目標(biāo)機(jī)間的通信、運(yùn)行、調(diào)試和監(jiān)視VxWorks應(yīng)用程序。

?用于完成輔助測(cè)試、定時(shí)、調(diào)試等功能的開(kāi)發(fā)工具。13Tornado開(kāi)發(fā)工具的組成編輯器:源碼編輯。工程管理工具:圖形化方式構(gòu)建、組織、配置VxWorks應(yīng)用工程。WindSh:駐留在主機(jī)端的命令行解釋器,提供從主機(jī)端控制運(yùn)行系統(tǒng)的接口。瀏覽器Browser:監(jiān)視系統(tǒng)信息。調(diào)試器CrossWind:類(lèi)似于VC調(diào)試工具,遠(yuǎn)程源碼級(jí)的調(diào)試器。軟件邏輯分析器WindView:分析實(shí)時(shí)軟件運(yùn)行狀態(tài)的邏輯分析器,可提供任務(wù)上下文切換情況、事件和有關(guān)測(cè)量對(duì)象的信息。模擬仿真器VxSim:在主機(jī)上模擬目標(biāo)機(jī)的仿真器。 這些工具可以使用TCL(ToolCommandLanguage,一種解釋性腳本語(yǔ)言)進(jìn)行定制,以增加新的功能和用戶(hù)接口。 工具的具體使用方法在后面介紹。14Tornado的開(kāi)發(fā)環(huán)境15Tornado的主要目錄結(jié)構(gòu)Host:Tornado的主機(jī)工具目錄share:共享的XDR(eXternalDataRepresentation)代碼目錄,XDR是一種網(wǎng)絡(luò)發(fā)送數(shù)據(jù)的標(biāo)準(zhǔn)格式,XDR代碼用于主機(jī)工具和目標(biāo)機(jī)之間進(jìn)行數(shù)據(jù)傳輸使用。Target:VxWorks操作系統(tǒng)和板級(jí)支持包目錄Docs:在線(xiàn)HTML文檔16target的主要目錄結(jié)構(gòu)config——配置和編譯VxWorks的文件

?all通用的配置文件

?bspName板級(jí)支持包

?compsVxWorks的組件描述文件proj——VxWorks的工程目錄h ——VxWorks的頭文件lib——VxWorks的庫(kù)文件src——部分VxWorks的源碼17132基礎(chǔ)知識(shí)介紹交叉開(kāi)發(fā)環(huán)境的建立方法Tornado工具及其使用方法4常用的軟件調(diào)試開(kāi)發(fā)方法18常用的軟件調(diào)試開(kāi)發(fā)方法VxWorks系統(tǒng)是內(nèi)嵌在Tornado集成開(kāi)發(fā)環(huán)境中的,而不像Windows系統(tǒng)那樣,直接安裝到計(jì)算機(jī)上,并帶有很多的應(yīng)用和軟件開(kāi)發(fā)工具。在進(jìn)行基于VxWorks系統(tǒng)的軟件開(kāi)發(fā)調(diào)試時(shí),一般需要一個(gè)安裝有Windows和Tornado工具的計(jì)算機(jī)進(jìn)行開(kāi)發(fā)、調(diào)試工作;同時(shí)需要一個(gè)運(yùn)行VxWorks系統(tǒng)的目標(biāo)機(jī)執(zhí)行開(kāi)發(fā)的軟件。19使用目標(biāo)機(jī)仿真器進(jìn)行調(diào)試開(kāi)發(fā)虛擬機(jī)軟件虛擬目標(biāo)機(jī)進(jìn)行調(diào)試開(kāi)發(fā)使用真實(shí)的目標(biāo)機(jī)進(jìn)行調(diào)試開(kāi)發(fā)

根據(jù)目標(biāo)機(jī)的實(shí)現(xiàn)方法不同,可以將基于VxWorks系統(tǒng)的軟件調(diào)試開(kāi)發(fā)方法分為以下三種:

20使用目標(biāo)機(jī)仿真器進(jìn)行調(diào)試開(kāi)發(fā)

利用Tornado自帶的VxSim,在主機(jī)上虛擬出一個(gè)目標(biāo)機(jī)環(huán)境,基于此目標(biāo)機(jī)環(huán)境進(jìn)行調(diào)試開(kāi)發(fā)??捎糜谂c硬件無(wú)關(guān)的簡(jiǎn)單軟件的開(kāi)發(fā)。

【優(yōu)點(diǎn)】簡(jiǎn)單,所有的工作都可以在一臺(tái)計(jì)算機(jī)上完成?!救秉c(diǎn)】軟件模擬環(huán)境,無(wú)法模擬出真實(shí)目標(biāo)機(jī)的硬件特性,僅用于學(xué)習(xí)與硬件無(wú)關(guān)的簡(jiǎn)單軟件的開(kāi)發(fā)。21利用虛擬機(jī)軟件虛擬目標(biāo)機(jī)進(jìn)行調(diào)試開(kāi)發(fā)

利用VMware等工具,在主機(jī)上虛擬出一個(gè)目標(biāo)機(jī)硬件平臺(tái)。在Tornado中使用與交叉開(kāi)發(fā)一樣的方式進(jìn)行軟件開(kāi)發(fā)和調(diào)試。

【優(yōu)點(diǎn)】與VxSim相比,更具真實(shí)性,并且可以進(jìn)行網(wǎng)絡(luò)編程和對(duì)文件系統(tǒng)的操作?!救秉c(diǎn)】畢竟也是虛擬的平臺(tái),與硬件相關(guān)的功能無(wú)法開(kāi)發(fā)調(diào)試。22使用真實(shí)的目標(biāo)機(jī)進(jìn)行調(diào)試開(kāi)發(fā)

使用嵌入式軟件最終運(yùn)行的硬件平臺(tái)作為目標(biāo)機(jī),進(jìn)行交叉開(kāi)發(fā)。

【優(yōu)點(diǎn)】目標(biāo)機(jī)環(huán)境與系統(tǒng)真實(shí)環(huán)境一致,保證了在開(kāi)發(fā)時(shí)的目標(biāo)系統(tǒng)與發(fā)布后的系統(tǒng)之間具有最小可能的不同之處?!救秉c(diǎn)】開(kāi)發(fā)調(diào)試過(guò)程復(fù)雜,速度慢。23132基礎(chǔ)知識(shí)介紹交叉開(kāi)發(fā)環(huán)境的建立方法Tornado工具及其使用方法4常用的軟件調(diào)試開(kāi)發(fā)方法24Tornado工具及其使用方法編輯器工程管理工具WindSh工具瀏覽器Browser工具調(diào)試器CrossWind工具軟件邏輯分析器WindView工具25編輯器編輯器可以進(jìn)行標(biāo)準(zhǔn)的文本編輯,同時(shí)也為編程環(huán)境提供了一些功能:創(chuàng)建、打開(kāi)文件,并對(duì)文件進(jìn)行編輯、導(dǎo)航、查找、替換、打印等操作;彩色高亮度顯示程序語(yǔ)法要素,例如彩色顯示C/C++的關(guān)鍵字、預(yù)處理開(kāi)關(guān)、注釋等;與調(diào)試器集成,在調(diào)試過(guò)程中編輯器自動(dòng)與程序執(zhí)行同步,可在編輯器窗口內(nèi)跟蹤代碼執(zhí)行;與編譯器集成,把編譯消息連接到編輯窗口。與一般編輯器的使用方法基本一致26工程管理工具功能:提供了以圖形化和自動(dòng)化方式管理工程的功能。

術(shù)語(yǔ):工程(Project)

源文件、二進(jìn)制文件和編譯規(guī)則的集合,工程工具提供了一個(gè)定義、修改和維護(hù)工程的不同構(gòu)建選項(xiàng)的簡(jiǎn)單方法。在使用Tornado創(chuàng)建一個(gè)工程時(shí),可選擇為可下載工程(DownloadableProject)和可啟動(dòng)工程(BootableProject)。27工作空間(Workspace)

一個(gè)邏輯和圖形化的“容器”,可以容納一個(gè)或多個(gè)工程,提供了相關(guān)工程同時(shí)工作的有效方法。工作空間可以以“Files”(工程源文件和目標(biāo)文件)、“VxWorks”(VxWorks包含和不包含的組件)、“Builds”(編譯規(guī)則)三種方式顯示工程??上螺d工程(DownloadableProject)

被用于管理和編譯可以下載并且能夠動(dòng)態(tài)鏈接到VxWorks映像上的應(yīng)用程序模塊的工程??蓡?dòng)工程(BootableProject)

被用于為某一指定BSP配置并編譯VxWorks映像的工程。在該工程中,應(yīng)用程序的代碼被靜態(tài)的鏈接到VxWorks映像中。28組件(Component)

可裁減的VxWorks工具。工具鏈(Toolchain)

為某一特定目標(biāo)處理器構(gòu)建應(yīng)用程序的所有開(kāi)發(fā)工具的集合(如編譯器、鏈接器等)。演示:工程的創(chuàng)建(可下載工程、可啟動(dòng)工程)工程的使用

29WindSh——介紹 WindSh是一個(gè)駐留在主機(jī)端的命令行解釋器,它提供從主機(jī)端控制運(yùn)行系統(tǒng)的接口,允許用戶(hù)調(diào)用內(nèi)存中的應(yīng)用程序模塊或VxWorks模塊中的任何例程。 WindSh既是一個(gè)交互式的C語(yǔ)言解釋器,又是一個(gè)交互式的Tcl解釋器。由于我們?cè)趯?shí)際開(kāi)發(fā)程序過(guò)程中很少將其作為T(mén)cl解釋器使用,這里僅介紹其作為C語(yǔ)言解釋器的部分功能。 當(dāng)作為C語(yǔ)言解釋器時(shí),WindSh可完成如下工作:

?訪(fǎng)問(wèn)VxWorks工具

?下載和調(diào)用代碼

?創(chuàng)建和檢查變量 ?調(diào)試程序30WindSh——啟動(dòng)方法WindSh的常用啟動(dòng)方法有三種:在工具條單擊按鈕啟動(dòng)。從菜單欄選擇Tools->Shell選項(xiàng)啟動(dòng)。在控制臺(tái)方式下鍵入“windsh[選項(xiàng)]目標(biāo)機(jī)服務(wù)器名稱(chēng)”命令啟動(dòng)。

若采用前兩種方法,則在Tornado開(kāi)發(fā)環(huán)境中新啟動(dòng)一個(gè)Shell窗口;若采用第三種方法,則Shell就在調(diào)用它的控制臺(tái)窗口中執(zhí)行。31WindSh——作為一個(gè)C語(yǔ)言解釋器演示: 在shell下依次鍵入如下內(nèi)容:

–>year=2010 –>month=03 –>day=09 –>myName=“Liulq” –>printf(“Mynameis%s\n,Todayis%d-%d-%d\n”,myName,year,month,day)

32WindSh——內(nèi)嵌的部分命令(開(kāi)發(fā)中常用的)sp:以默認(rèn)方式創(chuàng)建一個(gè)任務(wù)td:刪除一個(gè)任務(wù)pwd:查看當(dāng)前所在目錄cd:改變當(dāng)前目錄i/ti:給出(詳細(xì))任務(wù)信息w/tw:顯示任務(wù)當(dāng)前正在等待的對(duì)象ld/unld:加載或卸載模塊show:在WindSh中顯示對(duì)象信息演示:在WindSh環(huán)境下下載并執(zhí)行程序33瀏覽器Browser—介紹

Tornado瀏覽器提供了以圖形方式監(jiān)視目標(biāo)機(jī)的系統(tǒng)信息、狀態(tài)信息的功能??杀O(jiān)視下述內(nèi)容:

?MemoryUsage(內(nèi)存使用情況信息)

?ModuleInformation(加載的模塊的信息)

?ObjectInformation

(VxWorks的對(duì)象信息)——如信號(hào) 量、消息隊(duì)列、看門(mén)狗定時(shí)器等

?SpyChart(各任務(wù)的CPU使用情況)

?StackCheck(各任務(wù)堆棧的使用情況信息)

?TargetInformation(目標(biāo)機(jī)信息)

?Tasks(任務(wù)狀態(tài)信息)

?VectorTable(中斷向量表信息)——在本機(jī)模擬情況下沒(méi)有34瀏覽器Browser—使用方法

啟動(dòng)方法:

1、工具條按鈕啟動(dòng)

2、菜單欄選項(xiàng)啟動(dòng)

使用方法演示!35調(diào)試器CrossWind—介紹

Tornado提供了一個(gè)類(lèi)似于VC調(diào)試工具的調(diào)試器CrossWind,它將圖形調(diào)試界面和命令行調(diào)試界面很好的組合在了一起。 調(diào)試器提供了程序啟動(dòng)過(guò)程和程序運(yùn)行過(guò)程兩種情況下的調(diào)試,對(duì)于程序運(yùn)行過(guò)程調(diào)試又可分為任務(wù)級(jí)調(diào)試和系統(tǒng)級(jí)調(diào)試。

36調(diào)試器CrossWind—使用方法 啟動(dòng)與停止方法: 1、工具條按鈕啟動(dòng)/停止

2、菜單欄選項(xiàng)啟動(dòng)/停止 調(diào)試方法: 1、啟動(dòng)過(guò)程的調(diào)試(演示)

調(diào)試那些在程序啟動(dòng)后只單次執(zhí)行的代碼,例如初始化代碼。37調(diào)試器CrossWind—使用方法

2、對(duì)已經(jīng)運(yùn)行的任務(wù)進(jìn)行調(diào)試(演示)

調(diào)試那些在程序啟動(dòng)后會(huì)周期執(zhí)行或受事件觸發(fā)的代碼。主要是對(duì)任務(wù)的循環(huán)代碼、事件觸發(fā)代碼和中斷服務(wù)程序進(jìn)行調(diào)試。系統(tǒng)模式。對(duì)整個(gè)應(yīng)用系統(tǒng)進(jìn)行調(diào)試,可在系統(tǒng)中設(shè)置斷點(diǎn)等,調(diào)試中應(yīng)用系統(tǒng)必須停下來(lái)。任務(wù)模式(即動(dòng)態(tài)調(diào)試)。調(diào)試是針對(duì)系統(tǒng)中某一任務(wù)模塊進(jìn)行的,整個(gè)系統(tǒng)仍可保留在工作狀態(tài)。

38軟件邏輯分析器WindView—介紹

WindView是一個(gè)可視化的軟件實(shí)時(shí)邏輯分析器,它可提供系統(tǒng)運(yùn)行過(guò)程中任務(wù)上下文切換、事件和有關(guān)對(duì)象的信息,其結(jié)構(gòu)如右圖所示。 tWvRBuffMgr任務(wù)用于收集事件數(shù)據(jù),并存儲(chǔ)在目標(biāo)機(jī)的內(nèi)存(事件緩沖區(qū))中。 tWVUpload任務(wù)用于上傳事件數(shù)據(jù)到主機(jī)。 事件數(shù)據(jù)可以在主機(jī)上以圖形方式顯示,或者以文件方式存儲(chǔ)。39軟件邏輯分析器WindView—使用方法

啟動(dòng): 1、工具條按鈕啟動(dòng) 2、菜單欄選項(xiàng)啟動(dòng)

配置:

在配置對(duì)話(huà)框中選擇需要監(jiān)視的事件操作,包括上下文切換、任務(wù)狀態(tài)轉(zhuǎn)換和自定義方式三種。

操作控制:

在控制對(duì)話(huà)框控制各項(xiàng)操作。(WindView配置、上傳數(shù)據(jù)、查看事件日志、定時(shí)查看事件日志、啟動(dòng)WindView、停止WindView)40132基礎(chǔ)知識(shí)介紹交叉開(kāi)發(fā)環(huán)境的建立方法Tornado工具及其使用方法4常用的軟件調(diào)試開(kāi)發(fā)方法41交叉開(kāi)發(fā)環(huán)境的建立方法開(kāi)發(fā)環(huán)境的啟動(dòng)過(guò)程配置目標(biāo)機(jī)配置主機(jī)42開(kāi)發(fā)環(huán)境的啟動(dòng)過(guò)程 開(kāi)發(fā)環(huán)境的啟動(dòng)通過(guò)引導(dǎo)文件bootrom.sys和操作系統(tǒng)映像文件VxWorks兩個(gè)文件完成。 引導(dǎo)文件bootrom.sys的主要作用類(lèi)似于BIOS,一般存放在軟盤(pán)、目標(biāo)機(jī)硬盤(pán)或目標(biāo)機(jī)FLASH盤(pán)上,由Vxld或其他程序加載到內(nèi)存,用于初始化目標(biāo)機(jī)上的硬件,建立VxWorks的運(yùn)行環(huán)境,從引導(dǎo)設(shè)備上加載VxWorks操作系統(tǒng)映像,然后將CPU的控制權(quán)交給操作系統(tǒng)。

VxWorks是操作系統(tǒng)的映像文件,可以存放在bootrom.sys所在的軟盤(pán)、目標(biāo)機(jī)硬盤(pán)、目標(biāo)機(jī)FLASH盤(pán)或主機(jī)硬盤(pán)上(具體的存放位置與引導(dǎo)參數(shù)設(shè)置有關(guān)),由bootrom.sys的加載程序加載到目標(biāo)機(jī)內(nèi)存。43開(kāi)發(fā)環(huán)境的啟動(dòng)過(guò)程 1、啟動(dòng)目標(biāo)機(jī)。

2、完成自檢后,從引導(dǎo)盤(pán)的指定位置引導(dǎo),由Vxld或其他程序加載引導(dǎo)文件bootrom.sys到內(nèi)存。

3、引導(dǎo)文件bootrom.sys的主要作用類(lèi)似于BIOS,用于初始化目標(biāo)機(jī)上的硬件,建立VxWorks的運(yùn)行環(huán)境。

4、加載VxWorks操作系統(tǒng)映像,然后將CPU的控制權(quán)交給操作系統(tǒng)。44bootrom.sys/vxWorks/引導(dǎo)盤(pán)之間的關(guān)系 引導(dǎo)盤(pán)是經(jīng)過(guò)處理的,專(zhuān)門(mén)用于加載bootrom.sys的介質(zhì)(可以是目標(biāo)機(jī)上的軟盤(pán)、硬盤(pán)、Flash盤(pán)等),bootrom.sys存在于引導(dǎo)盤(pán)上。 引導(dǎo)盤(pán)加載bootrom.sys后,初始化目標(biāo)機(jī)上的硬件,建立VxWorks的運(yùn)行環(huán)境,然后從指定的位置上加載VxWorks操作系統(tǒng)映像,將CPU的控制權(quán)交給操作系統(tǒng)。(此處的指定位置與引導(dǎo)盤(pán)無(wú)關(guān),在引導(dǎo)行中已經(jīng)指定,可以是目標(biāo)機(jī)軟盤(pán)、硬盤(pán)、Flash盤(pán)或主機(jī)硬盤(pán))。

VxWorks是操作系統(tǒng)的映像文件,可以存放在bootrom.sys所在的軟盤(pán)、目標(biāo)機(jī)硬盤(pán)、目標(biāo)機(jī)FLASH盤(pán)或主機(jī)硬盤(pán)上(具體的存放位置與引導(dǎo)參數(shù)設(shè)置有關(guān)),由bootrom.sys的加載程序加載到目標(biāo)機(jī)內(nèi)存。

[注]bootrom.sys的位置與VxWorks的位置沒(méi)有必然聯(lián)系。4546主機(jī)相關(guān)——安裝Tornado

1、安裝Tornado工具、BSP、組件模塊、軟件補(bǔ)丁等。

2、在命令行方式下,使用make命令編譯操作系統(tǒng)和組件工具。(根據(jù)購(gòu)買(mǎi)的Tornado,可能需要該項(xiàng)操作)返回47主機(jī)相關(guān)——設(shè)置環(huán)境變量

在進(jìn)行VxWorks系統(tǒng)軟件開(kāi)發(fā)的過(guò)程中,經(jīng)常會(huì)用到Tornado提供的命令行工具進(jìn)行某些操作。如利用make命令編譯文件、利用mkboot命令制作啟動(dòng)盤(pán)等。這些命令都位于WIND_BASE\host\x86-win32\bin(WIND_BASE為T(mén)ornado的安裝目錄)目錄下,每個(gè)命令對(duì)應(yīng)一個(gè)可執(zhí)行文件。 默認(rèn)情況下,需要在命令行方式下進(jìn)入WIND_BASE\host\x86-win32\bin目錄才能執(zhí)行相應(yīng)的操作;此外,也可以把對(duì)應(yīng)命令的可執(zhí)行文件拷貝到我們需要的目錄下,然后在該目錄下執(zhí)行相應(yīng)的操作。48主機(jī)相關(guān)——設(shè)置環(huán)境變量

然而,在實(shí)際使用時(shí)經(jīng)常需要在不同的目錄下執(zhí)行各種操作,這就需要提供一種方式,使得既不用進(jìn)入WIND_BASE\host\x86-win32\bin目錄,也不用拷貝對(duì)應(yīng)命令的可執(zhí)行文件到目標(biāo)目錄,從而完成對(duì)各種命令的調(diào)用。 在Tornado的WIND_BASE\host\x86-win32\bin目錄下提供了一個(gè)批處理文件torVars.bat用于設(shè)置環(huán)境變量,該操作執(zhí)行結(jié)束后,即設(shè)置了命令的尋找路徑,使得在任何目錄下都可以成功調(diào)用WIND_BASE\host\x86-win32\bin目錄下的各種命令。 然而,使用torVars命令也不是一個(gè)很方便的方法,因?yàn)槊看芜M(jìn)入命令行方式后都需要重新執(zhí)行torVars操作,然后才可以在任何目錄中調(diào)用各種命令。49主機(jī)相關(guān)——設(shè)置環(huán)境變量

為了方便使用,可將torVars.bat中的內(nèi)容設(shè)置到用戶(hù)環(huán)境變量或系統(tǒng)環(huán)境變量中。內(nèi)容如下: WIND_HOST_TYPE=x86-win32 (與主機(jī)系統(tǒng)有關(guān)) WIND_BASE=C:\Tornado2.2 (與安裝目錄有關(guān)) PATH=%WIND_BASE%\host\%WIND_HOST_TYPE%\bin;返回50主機(jī)相關(guān)——配置FTPServer

當(dāng)配置引導(dǎo)行時(shí),若設(shè)置目標(biāo)機(jī)通過(guò)網(wǎng)絡(luò)形式加載宿主機(jī)硬盤(pán)上的VxWorks映像文件,則目標(biāo)機(jī)在引導(dǎo)時(shí)通過(guò)FTP方式登錄宿主機(jī)FTPServer,并下載執(zhí)行宿主機(jī)硬盤(pán)上的VxWorks映像文件。在這種方式下,需要配置宿主機(jī)端的FTPServer,并且在目標(biāo)機(jī)引導(dǎo)時(shí)啟動(dòng)該FTPServer。 ?配置用戶(hù)名和密碼(與引導(dǎo)行中一致) ?配置主目錄(目標(biāo)機(jī)通過(guò)FTP方式登錄到宿主機(jī)FTPServer后所進(jìn)入的默認(rèn)的宿主機(jī)目錄

)返回51主機(jī)相關(guān)——配置targetserver

TargetServer在宿主機(jī)上運(yùn)行,用于管理Tornado主機(jī)工具和目標(biāo)機(jī)系統(tǒng)之間的通訊。 TargetServer通過(guò)目標(biāo)機(jī)代理與目標(biāo)機(jī)系統(tǒng)通訊,目標(biāo)機(jī)代理作為一個(gè)VxWorks任務(wù)或VxWorks的外層運(yùn)行在目標(biāo)機(jī)系統(tǒng)上。為了能夠正確的和目標(biāo)機(jī)代理進(jìn)行通訊,TargetServer要使用一個(gè)與目標(biāo)機(jī)代理配置有相同的通訊協(xié)議和傳輸層的通訊后端。 在實(shí)際使用時(shí),一般是一個(gè)TargetServer對(duì)應(yīng)一個(gè)目標(biāo)機(jī)配置,在使用主機(jī)工具與目標(biāo)機(jī)進(jìn)行交互之前必須先啟動(dòng)與該目標(biāo)機(jī)對(duì)應(yīng)的TargetServer。操作演示!返回52目標(biāo)機(jī)相關(guān)——硬件設(shè)置1、硬件連接和跳線(xiàn)設(shè)置。2、若要目標(biāo)機(jī)支持網(wǎng)絡(luò),加載網(wǎng)卡驅(qū)動(dòng),則需確定目標(biāo)機(jī)網(wǎng)卡芯片型號(hào)。3、若目標(biāo)機(jī)采用10Mb網(wǎng)卡,需確定該網(wǎng)卡在目標(biāo)機(jī)硬件環(huán)境下的中斷號(hào)和基地址。返回53目標(biāo)機(jī)相關(guān)——制作引導(dǎo)盤(pán) VxWorks系統(tǒng)引導(dǎo)盤(pán)是用來(lái)存儲(chǔ)bootrom.sys文件,并能夠在系統(tǒng)啟動(dòng)后可以自動(dòng)加載bootrom.sys文件的介質(zhì)。常用的作為引導(dǎo)盤(pán)的介質(zhì)有軟盤(pán)、硬盤(pán)或Flash盤(pán)。 Tornado提供了命令行工具vxsys用于制作VxWorks系統(tǒng)引導(dǎo)盤(pán),其命令格式為:vxsys[盤(pán)符]。例如要將插入軟驅(qū)A中的軟盤(pán)做成VxWorks系統(tǒng)引導(dǎo)盤(pán),則需要在命令行方式下鍵入“vxsysa:”。 當(dāng)要使用硬盤(pán)作為VxWorks系統(tǒng)引導(dǎo)盤(pán)時(shí)需要注意,用于做引導(dǎo)盤(pán)的那個(gè)分區(qū)必須為FAT16格式,并且要被設(shè)置成活動(dòng)的主引導(dǎo)區(qū)。返回54目標(biāo)機(jī)相關(guān)——制作bootrom(設(shè)置引導(dǎo)行)

引導(dǎo)行的功能是指示VxWorks文件的加載地址,設(shè)置一些目標(biāo)機(jī)的配置信息(如目標(biāo)機(jī)IP地址),以便于bootrom.sys文件按照引導(dǎo)行的要求從指定位置加載VxWorks文件。 引導(dǎo)行的格式及常用的參數(shù)如下: dev(unitNum,procNum)hostName:/filePath[h=#e=#

u=#

pw=#

o=#tn=#

f=#

s=#]

55

dev代表存儲(chǔ)或加載VxWorks映像文件的介質(zhì),如下表所示:標(biāo)識(shí)設(shè)備宏定義設(shè)備備注1備注2fdINCLUDE_FD軟盤(pán)需要DOSFS文件系統(tǒng)支持,需定義INCLUDE_DOSFSVxWorks映像存儲(chǔ)在目標(biāo)機(jī)端介質(zhì)上ataINCLUDE_ATAATA硬盤(pán)ideINCLUDE_IDEIDE硬盤(pán)scsiINCLUDE_SCSISCSI硬盤(pán)tffsINCLUDE_TFFSDOCpcmciaINCLUDE_PCMCIAPCMCIA卡tsfsINCLUDE_TSFS串口VxWorks映像存儲(chǔ)在宿主機(jī)介質(zhì)上fei等INCLUDE_FEI_END網(wǎng)口56

dev示例: 若使用采用Intel82559芯片的網(wǎng)卡作為引導(dǎo)設(shè)備,則對(duì)應(yīng)引導(dǎo)行的dev為fei; 若采用ATA硬盤(pán)作為引導(dǎo)設(shè)備,則對(duì)應(yīng)引導(dǎo)行的dev為ata=0,0。其中,等號(hào)后面的第一個(gè)數(shù)字代表ATA控制器,為0代表第一個(gè)控制器,為1代表第二個(gè)控制器。等號(hào)后面的第二個(gè)數(shù)字代表控制器上的主盤(pán)或從盤(pán),為0代表主盤(pán)master,為1代表從盤(pán)slave。57

unitNum為單元號(hào)。例如,當(dāng)使用網(wǎng)絡(luò)作為引導(dǎo)設(shè)備時(shí),unitNum的值代表系統(tǒng)中相同類(lèi)型網(wǎng)卡的序號(hào),為0代表第1塊網(wǎng)卡,為1則代表第二塊網(wǎng)卡,依次類(lèi)推。

procNum為處理器編號(hào)。由于我們使用的目標(biāo)機(jī)大部分都是單處理器的系統(tǒng),因此,procNum的值一般均為0。

hostName為主機(jī)名稱(chēng),可以任意指定。

filePath為待引導(dǎo)的VxWorks映像文件的位置及名稱(chēng)。對(duì)于使用串口或網(wǎng)口作為引導(dǎo)設(shè)備的形式,filePath可填寫(xiě)VxWorks的絕對(duì)路徑或相對(duì)路徑(與主機(jī)端的設(shè)置有關(guān));對(duì)于其它的引導(dǎo)設(shè)備,filePath一般填寫(xiě)VxWorks的絕對(duì)路徑。58

可選設(shè)置項(xiàng)中的h和e分別代表主機(jī)IP和目標(biāo)機(jī)IP,其設(shè)置值為點(diǎn)分十進(jìn)制的IP地址(例如)。 可選設(shè)置項(xiàng)中的tn為目標(biāo)機(jī)名稱(chēng),其值可設(shè)置為任意的字符串。 可選設(shè)置項(xiàng)中的u和pw分別代表宿主機(jī)端FTP服務(wù)器的用戶(hù)名和密碼。當(dāng)使用網(wǎng)口作為引導(dǎo)設(shè)備時(shí),目標(biāo)機(jī)需要從宿主機(jī)硬盤(pán)上加載VxWorks映像文件,而這一加載過(guò)程是通過(guò)FTP方式進(jìn)行的。目標(biāo)機(jī)為FTP客戶(hù),而宿主機(jī)為FTP服務(wù)器。 可選設(shè)置項(xiàng)中的o代表系統(tǒng)引導(dǎo)時(shí)還需加載(驅(qū)動(dòng))的設(shè)備的標(biāo)識(shí)。例如使用ATA硬盤(pán)作為引導(dǎo)設(shè)備,但在啟動(dòng)時(shí)還希望加載采用Intel82559芯片的網(wǎng)卡,則可在引導(dǎo)行中加入o=fei。59 設(shè)置項(xiàng)中的f為啟動(dòng)標(biāo)識(shí),不同的值對(duì)應(yīng)不同的宏定義(在sysLib.h文件中定義),代表不同的含義。宏定義取值功能描述SYSFLG_NO_SYS_CONTROLLER0x01不使能系統(tǒng)控制器為處理器0SYSFLG_DEBUG0x02調(diào)試選項(xiàng),用所有符號(hào)裝載內(nèi)核符號(hào)表SYSFLG_NO_AUTOBOOT0x04不進(jìn)行自動(dòng)引導(dǎo)SYSFLG_QUICK_AUTOBOOT0x08快速引導(dǎo),不進(jìn)行倒計(jì)時(shí)SYSFLG_NO_STARTUP_SCRIPT0x10不讀取啟動(dòng)腳本SYSFLG_NO_SECURITY0x20安全登陸無(wú)效,在網(wǎng)絡(luò)注冊(cè)時(shí)無(wú)需密碼SYSFLG_AUTOCONFIG0x40使用bootp或DHCP得到引導(dǎo)參數(shù)SYSFLG_TFTP0x80使用TFTP獲得啟動(dòng)映像SYSFLG_PROXY0x100使用代理ARPSYSFLG_WDB0x200使用WDB代理60 設(shè)置項(xiàng)中的s為系統(tǒng)啟動(dòng)后執(zhí)行的腳本文件(其類(lèi)型為文本文件),其設(shè)置值即為文本文件的路徑及文件名。該文件是一個(gè)shell可識(shí)別的文本文件(C語(yǔ)言解釋器)。VxWorks啟動(dòng)后,targetShell將打開(kāi)該文件,并逐行解釋執(zhí)行。例如腳本文件:

ld</ata/myApp.out spmyApp 該腳本文件從硬盤(pán)上加載myApp.out目標(biāo)代碼,然后以任務(wù)形式調(diào)用函數(shù)myApp()啟動(dòng)用戶(hù)應(yīng)用程序。這種加載用戶(hù)應(yīng)用程序的方式將用戶(hù)應(yīng)用程序與VxWorks系統(tǒng)內(nèi)核分離,有利于應(yīng)用程序單獨(dú)升級(jí),大大提高了系統(tǒng)配置的靈活性。61幾個(gè)引導(dǎo)行的示例:軟盤(pán)加載:fd=0,0(0,0)host:/fd0/vxWorks

h=e=12

u=target

o=rtl

f=0x08硬盤(pán)vxWorks加載:ata=0,0(0,0)liulq:/ata0/vxWorks

h=e=12

u=target

o=rtl

f=0x08 主機(jī)硬盤(pán)vxWorks加載: rtl(0,0)liulq:C:/Tornado220/target/config/pcPentium_221_rtl/vxWorks

h=

e=11

u=liulq

pw=liulq

f=0x08

tn=VxTarget62目標(biāo)機(jī)相關(guān)——制作bootrom(設(shè)置網(wǎng)卡)

在實(shí)際使用中,常使用以太網(wǎng)實(shí)現(xiàn)宿主機(jī)與目標(biāo)機(jī)之間的連接,這就需要在系統(tǒng)啟動(dòng)時(shí)加載網(wǎng)絡(luò)驅(qū)動(dòng)。系統(tǒng)默認(rèn)支持的網(wǎng)卡類(lèi)型如下:標(biāo)識(shí)設(shè)備宏定義網(wǎng)卡類(lèi)型dcINCLUDE_DEC21X40_ENDDEC21x40PCI網(wǎng)卡elPciINCLUDE_EL_3C90X_END3ComFastEtherLinkXLPCI網(wǎng)卡eltINCLUDE_ELT_3C509_END3ComEtherLinkIIIISA網(wǎng)卡eneINCLUDE_ENE_ENDEagle/NovellNE2000ISA網(wǎng)卡feiINCLUDE_FEI_ENDIntel8255[7/8/9]PCI網(wǎng)卡geiINCLUDE_GEI8254X_ENDIntel82543/82544PCI網(wǎng)卡lnPciINCLUDE_LN_97X_ENDAMD79C97xPCI網(wǎng)卡ultraINCLUDE_ULTRA_ENDSMCElite16UltraISA網(wǎng)卡63

1、系統(tǒng)支持的百兆、千兆網(wǎng)卡驅(qū)動(dòng)加載方法

對(duì)于系統(tǒng)支持的百兆、千兆網(wǎng)卡,只需在config.h文件中包含相應(yīng)的宏定義即可。 例如,假設(shè)目標(biāo)機(jī)使用的是Intel82559芯片的網(wǎng)卡,則需如下定義:

#defineINCLUDE_FEI_END64

2、系統(tǒng)支持的十兆網(wǎng)卡驅(qū)動(dòng)加載方法

對(duì)于十兆的ISA網(wǎng)卡,其中斷和基地址一般都需要跳線(xiàn)設(shè)置,而不象PCI網(wǎng)卡那樣會(huì)由系統(tǒng)自動(dòng)分配。因此,對(duì)于系統(tǒng)支持的十兆網(wǎng)卡,不但需包含相應(yīng)的宏定義,還需將基地址和中斷號(hào)設(shè)置得與硬件一致。 例如,假設(shè)目標(biāo)機(jī)使用的是8019芯片的NE2000兼容網(wǎng)卡,網(wǎng)卡的基地址和中斷分別通過(guò)跳線(xiàn)設(shè)置為0x300和5,則需要在config.h中作如下定義:

#defineINCLUDE_ENE_END #defineIO_ADRS_ENE 0x300 #defineINT_LVL_ENE 0x0565

3、系統(tǒng)不支持的網(wǎng)卡驅(qū)動(dòng)加載方法

(1)從硬件設(shè)備廠(chǎng)商處得到該型網(wǎng)卡在VxWorks系統(tǒng)下的相應(yīng)支持文件。一般包括驅(qū)動(dòng)程序、系統(tǒng)加

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論