培訓課件-vxworks及其應用開發(fā)_第1頁
培訓課件-vxworks及其應用開發(fā)_第2頁
培訓課件-vxworks及其應用開發(fā)_第3頁
培訓課件-vxworks及其應用開發(fā)_第4頁
培訓課件-vxworks及其應用開發(fā)_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費閱讀

付費下載

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

VxWorks及其應用開發(fā)陳香蘭

2006年7月2課程內容VxWorks和Tornado簡介任務和任務間通信信號、中斷處理與定時機制調試環(huán)境與實例分析網絡編程VxWorks操作系統(tǒng)配置VxWorks及其集成開發(fā)環(huán)境Tornado簡介xlanchen@2006.7.54主要內容VxWorks操作系統(tǒng)及其特點VxWorks操作系統(tǒng)的組成VxWorks開發(fā)環(huán)境的基本結構Tornado集成開發(fā)環(huán)境的主要組成Tornado集成開發(fā)環(huán)境的工具集5VxWorks操作系統(tǒng)VxWorks是專門為實時嵌入式系統(tǒng)設計開發(fā)的操作系統(tǒng)軟件,提供高效的實時任務調度中斷管理實時的系統(tǒng)資源實時的任務間通信6VxWorks的特點其微內核Wind是一個具有較高性能的、標準的嵌入式實時操作系統(tǒng)內核具有較好的可剪裁性支持應用程序的動態(tài)鏈接和動態(tài)下載具有較好的兼容性7VxWorks操作系統(tǒng)的組成VxWorks操作系統(tǒng)包括了進程管理、存儲管理、設備管理、文件系統(tǒng)管理、網絡協(xié)議及系統(tǒng)應用等幾個部分VxWorks只占用很小的存儲空間,并可高度剪裁,保證了系統(tǒng)能以較高的效率運行8VxWorks體系結構框圖高性能的實時操作系統(tǒng)核心:Wind

包括:采用基于優(yōu)先級的、可搶占的多任務調度任務間同步機制進程間通信機制中斷處理看門狗內存管理機制板級支持包:BoardSupportPackage板級支持包對各種板子的硬件功能提供了統(tǒng)一的軟件接口,包括硬件初始化中斷的產生和處理硬件時鐘和計時器管理局域和總線內存的地址映射內存分配等等每個BSP包括一個ROM啟動或其他啟動機制TCP/IP協(xié)議棧和網絡驅動I/O系統(tǒng)VxWorks提供了一個快速靈活的、與ANSIC兼容的I/O系統(tǒng),包括UNIX標準的緩沖I/OPOSIX標準的異步I/OI/O系統(tǒng)VxWorks包括以下驅動程序:網絡驅動:用于網絡通信,支持多種網卡管道驅動:用于任務間通信RAM盤驅動:用于常駐內存的文件SCSI驅動,用于SCSI設備鍵盤驅動,用于x86鍵盤,僅存在于x86BSP顯示驅動:用于x86VGA文本顯示,僅存在于x86BSP磁盤驅動,用于IDE/ATA設備,僅存在于x86BSP并口驅動,用于PC風格的目標機文件系統(tǒng):VxWorks提供適用于實時系統(tǒng)應用的快速文件系統(tǒng)這些設備都使用一個標準接口,從而使得文件系統(tǒng)能夠靈活的在設備驅動程序上移植文件系統(tǒng):VxWorks支持的文件系統(tǒng)包括:dosFs:與MS-DOS兼容的文件系統(tǒng)rt11Fs:一種與RT11操作系統(tǒng)兼容的文件系統(tǒng)rawFs:原生文件系統(tǒng)將整個盤作為一個文件,允許根據偏移讀寫磁盤的一部分tapeFs、TrueFFS、CdRomFs文件系統(tǒng):VxWorks中,普通數據文件、外部設備都統(tǒng)一作為文件處理實用庫VxWorks提供了一個實用例程擴展集,包括中斷處理、看門狗計時器、消息登錄、內存分配、字符掃描、線緩沖和環(huán)緩沖管理、鏈表管理和ANSIC標準9VxWorks的網絡設施

VxWorks的網絡設施包括:與BSD套接字兼容的編程接口遠程過程調用RPC(RemoteProcedureCall可選的簡單網絡管理協(xié)議SNMP(SimpleNetworkManagementProtocol)遠程文件訪問,包括基于client/Server的NFS機制以及使用RSH、FTP或TFTP的非NFS機制遠程的登錄和telnetTCP/IP協(xié)議棧無論是松耦合的串行線路、標準的以太網連接還是緊耦合的利用共享內存的背板總線,所有的VxWorks網絡機制都遵循標準的Internet協(xié)議以及bootp和ARP代理10其他VxWorks組件以及:虛擬內存(VxVMI)與共享內存(VxMP)VxVMI為帶有MMU的目標板提供了虛擬內存機制VxMP提供了共享信號量、消息隊列和在不同處理器之間的共享內存區(qū)域目標代理(TargetAgent)基于目標機的工具11目標代理(TargetAgent)VxWorks的開發(fā)使用基于主機/目標機結構的交叉開發(fā)環(huán)境目標機:運行VxWorks和應用程序的板子,通常為嵌入式板子主機:運行Tornado集成開發(fā)環(huán)境,為目標機生成VxWorks和應用程序主機與目標機之間通過以太網或串口相連,其通信由Targetserver/Agent方式進行開發(fā)環(huán)境(TargetServer)主機目標系統(tǒng)

(TargetAgent)目標機以太網/串口12目標代理,TargetAgent

遵循WBD(WindDebug)協(xié)議,允許目標機與主機上的Tornado開發(fā)工具相連。在目標代理的默認設置中,目標代理是以VxWorks的一個任務tWdbTask的形式運行的13TargetServer向目標代理發(fā)送調試請求調試請求可以決定目標代理對系統(tǒng)中其他任務的控制和處理默認方式下,targetserver與targetagent通過網絡通信,但用戶也可以改變通信方式14Tornado集成開發(fā)環(huán)境簡介Tornado集成開發(fā)環(huán)境是實現嵌入式實時應用程序的完整的軟件開發(fā)平臺是交叉開發(fā)環(huán)境運行在主機上的部分是開發(fā)和調試VxWorks系統(tǒng)不可缺少的系統(tǒng)組成部分Tornado是一個窗口環(huán)境,

集成了編輯器、編譯器、調試器于一體15Tornado開發(fā)系統(tǒng)的組成主機工具與VxWorks系統(tǒng)之間的通信由Targetserver/Agent共同完成Tornado開發(fā)系統(tǒng)包含三個高度集成的部分:VxWorks:運行在目標機上的高性能、可剪裁的實時操作系統(tǒng)Tornado開發(fā)環(huán)境:運行在宿主機上,包括一組交叉開發(fā)工具和實用程序,可對目標機上的應用進行跟蹤和調試連接宿主機和目標機的多種通信方式以太網、串口線等等16TornadoIDE的主要組成工具集成的源代碼編輯器工程配置工具——ProjectFacility/Configuration可以對VxWorks操作系統(tǒng)及其組件進行自動地配置Makefile自動生成維護軟件工程維護自動的依賴性分析代碼容量計算自動剪裁大大縮短了開發(fā)周期C/C++編譯環(huán)境VxWorks提供交叉編譯器、iostreams類庫和一系列的工具來支持C語言和C++語言DiabC/C++Compiler:唯一獲得Motorola白金大獎的嵌入式編譯器GNUC/C++Compiler:應用最廣泛的編譯器提供對C++全面的支持目標機系統(tǒng)狀態(tài)瀏覽器——browser這是Tornadoshell的一個圖形化組件提供目標系統(tǒng)的全面狀態(tài)總結,也允許開發(fā)者監(jiān)視獨立的目標系統(tǒng)對象:任務、信號燈、消息隊列、內存分區(qū)、定時器、模塊、堆棧等開發(fā)者可以選擇周期性或條件性的更新狀態(tài)值調試器,包括命令行和圖形接口工具CrossWind/WDB就是圖形化的增強型交叉調試器遠程源代碼集成調試器支持任務級和系統(tǒng)級調試支持混合源代碼和匯編代碼顯示支持多目標機同時調試WindView,集成的軟件邏輯分析儀(診斷分析工具)可以向開發(fā)者提供目標機硬件上實際運行的應用程序的詳細情況可以與VxSim一起使用集成的VxWorks目標仿真器——VxSim提供與真實目標機一致的調試和仿真運行環(huán)境允許開發(fā)者可以在沒有BSP、操作系統(tǒng)配置以及目標機硬件的情況下進行開發(fā)VxSim對軟件開發(fā)者的意義:在嵌入式系統(tǒng)開發(fā)中軟件的開發(fā)通常受到硬件開發(fā)進度的制約由于軟件開發(fā)必須滯后于硬件開發(fā),影響了產品研發(fā)進度VxSim在一定程度上解決了這個問題:使得用戶可以在工程開發(fā)初期,在硬件環(huán)境尚不具備的情況下,可以利用Tornado進行與硬件無關模塊的設計命令執(zhí)行工具——WindShC語言命令shell這是Tornado所獨有的功能強大的命令行解釋器可以直接解釋C語言表達式、調用目標機上的C函數、訪問系統(tǒng)符號表中登記的變量還可以直接執(zhí)行TCL語言可以實現所有的調試功能,包括下載/刪除軟件模塊創(chuàng)建并發(fā)起一個任務、刪除任務創(chuàng)建/刪除端點運行/單步/繼續(xù)執(zhí)行程序查看/修改內存、寄存器、變量查看任務列表、內存使用情況、CPU利用率查看特定的對象(任務、信號量、消息隊列、內存分區(qū)、類)復位目標機等17其他核心工具多語言瀏覽器——WindNavigator提供源代碼瀏覽圖形化顯示函數調用關系快速代碼定位18圖形化核心配置工具——WindConfig使用圖形向導方式智能化的自動配置VxWorks內核及其組件參數增量加載器可以動態(tài)的加載新增模塊并在目標機與內核實現動態(tài)鏈接運行,不必重新下載內核及未改動的模塊19TornadoIDE的工作方式TornadoIDE不受目標機資源的約束上述工具運行在主機上,依賴存放在主機上的目標機系統(tǒng)的符號表它們與目標機通過targetserver/agent交互20使用TornadoIDE可以大大縮短嵌入式開發(fā)周期Tornado的核心功能之一:

支持動態(tài)鏈接與加載開發(fā)者可以分批將目標模塊加載到目標系統(tǒng)上不必在主機上將應用程序與內核鏈接起來,然后整個的下載到目標系統(tǒng)上去可以大大縮短編輯-測試-調試周期Tornado的簡單教程xlanchen@2006.7.522主要內容創(chuàng)建projectBuildproject運行、觀察、調試project23Tornado的安裝24啟動Tornado創(chuàng)建工程對話框創(chuàng)建一個新的project第一次使用Tornado,會彈出這個窗口以后根據這里的選擇,彈出或不彈出這個對話框如果需要使用這個對話框,可以通過File中的Newproject菜單獲得25ApplicationBSPBootableVxWorksImageImage將運行在目標機上,包括RTOS內核、BSP、應用程序和組件4個部分Wind內核WDBAgentShellFileSystemcomponents26作為演示,我們創(chuàng)建一個downloable的應用程序模塊,并讓其運行在目標機仿真器上27建立一個可下載應用:

確定project名與路徑28選擇工具鏈(toolchain)工具鏈是一套用來建造針對特定目標機應用的交叉開發(fā)工具Tornado提供的工具鏈是基于GNU的預處理、編譯、匯編和鏈接器針對目標仿真器,默認的工具鏈名字形式是SIMhostOsgnu對NT主機是SIMNTgnu29確認所做的選擇30Workspace0和example1的信息窗口

31此時在上面選定的目錄中

32添加源文件第一步:添加源文件到開發(fā)目錄中第二步:將這個源文件加入到example1中33第一步:添加源文件到開發(fā)目錄中

從Tornado的安裝目錄下:

(安裝目錄)\target\src\demo\start

拷貝源文件到開發(fā)目錄中

D:\VxWorks_examples34第二步:為example1添加源文件

右鍵35此時,example1的信息窗口加入的源文件源文件所依賴的外部文件即將由源文件所產生的目標文件cobble.c產生的目標文件Tornado自動為example1生成的目標文件,

包含所有目標文件36Buildproject首先預覽一下默認的build設置雙擊Makefile默認規(guī)則宏編譯器、匯編器、鏈接器選項37根據上述默認規(guī)則,Buildexample1右鍵3839假如在源文件中有錯誤例如,在cobble.c中不小心使用了“//”在build的時候將被檢查出錯40雙擊41出錯信息出錯位置42刪除出錯的那一行內容當編譯成功后,就可以將應用下載到目標仿真器上43啟動目標機仿真器4445目標機仿真器輸出窗口選擇46運行browser、shell、debugger、simulator等等47在運行應用之前,應當先配置debugger48選擇當一個異常發(fā)生時,調試器可以自動地與任務關聯49運行debugger下面的狀態(tài)欄中變成工具欄中的調試圖形接口被激活50運行shellTornadoShell也就是WindSh是一個C語言命令解釋器它允許在shell命令行中調用下載到目標機上的任何程序它自身還提供一套用于任務管理、訪問系統(tǒng)信息、調試等命令51命令行輸入對于我們的例子,鍵入progStart來啟動cobble.c中的應用52cobble.c簡單介紹這是一個簡單的多任務應用模擬一個數據采集系統(tǒng)數據來自外部源例如,當數據到達時,一個設備將生成中斷第一個任務模擬一個中斷服務程序生成新數據第二個任務收集數據第三個任務處理數據,完成計算并求出一個結果第四個任務監(jiān)視結果值,當結果超出安全范圍時,向屏幕打印報警信息53讀部分源程序:progStartprogStop……54使用browser查看內存使用情況Tornadobrowser是一個系統(tǒng)對象瀏覽器,是shell的一個圖形化的助手可以提供顯示工具,來監(jiān)督目標系統(tǒng)狀態(tài),包括活動任務的概要內存分配等等啟動browser55下拉菜單我們選擇MemoryUsage,并周期性刷新周期性刷新56等待一段時間后……內存在飛快地消耗中???57下拉菜單啟動WindViewWindView是實時應用的邏輯分析儀,是一個動態(tài)可視工具可以提供上下文切換

溫馨提示

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

評論

0/150

提交評論