vxworks基礎培訓PPT課件_第1頁
vxworks基礎培訓PPT課件_第2頁
vxworks基礎培訓PPT課件_第3頁
vxworks基礎培訓PPT課件_第4頁
vxworks基礎培訓PPT課件_第5頁
已閱讀5頁,還剩43頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、1,Vxworks嵌入式編程基礎,鄧國旭,2,實時嵌入式系統(tǒng),嵌入式系統(tǒng): 由CPU控制,即自帶CPU 相對于常見的pc而言,不對用戶提供開發(fā)環(huán)境,用戶與系統(tǒng)交互的唯一接口就是系統(tǒng)提供給用戶的應用; 提供功能通常帶有針對性,大多為專用系統(tǒng); 手機,醫(yī)療設備,微波爐,mp3 實時嵌入式系統(tǒng): 實時性:任務切換時間、搶占時間、中斷等待時間、信號量延遲時間、死鎖解脫時間、任務間消息傳遞延遲、數(shù)據(jù)報吞吐量 小型化、可裁剪:系統(tǒng)資源有限 強穩(wěn)定性:一旦運行不需要人過多干預 固化代碼:操作系統(tǒng)和應用軟件代碼固化在嵌入式系統(tǒng)ROM中 弱交互性:工作過程不需人干預,3,嵌入式系統(tǒng)開發(fā),交叉編譯:在某一體系結構

2、的宿主機上為另一體系結構的目標板編譯可運行的目標代碼。即編譯與運行不在同一地方。 宿主機(host):編寫代碼和編譯 目標機(target):調試和執(zhí)行程序,4,VxWorks,VxWorks: 美國風河公司(Wind River System)推出的一種嵌入式實時操作系統(tǒng)。 強實時性、微內核設計、可裁剪、可移植、高可靠 VxWorks系統(tǒng)功能: Wind Kernel ANSI C/POSIX I/O系統(tǒng) 文件系統(tǒng) TCP/IP網(wǎng)絡協(xié)議棧 BSP開發(fā)包:提供BSP模塊、驅動程序模板和BSP測試工具包 WDB(Wind Debug Agent):支持交叉調試 ,5,BSP,BSP(Board

3、Support Package) 開發(fā)嵌入式應用時系統(tǒng)開發(fā)商提供的各種驅動支持庫 VxWorks:OS的驅動程序 VxWorks提供的大部分功能模塊與硬件無關,為使VxWorks能運行于不同的處理器體系結構上,必須在功能模塊與硬件之間加入一層軟件,并對這層軟件規(guī)定標準接口,這層軟件即為BSP 提供對硬件進行的描述性操作 提供對目標板的初始化、中斷管理以及一些簡單的驅動程序 最好的情況下,OS與驅動程序的移植只需要更換相應平臺下的BSP支撐庫 Tornado BSP Developers Kit for VxWorks,6,VxWorks系統(tǒng)結構,7,Tornado集成開發(fā)環(huán)境,Tornado:

4、 基于VxWorks操作系統(tǒng)的嵌入式軟件集成開發(fā)環(huán)境。 給嵌入式系統(tǒng)開發(fā)人員提供了一個不受目標機資源限制的超級開發(fā)和調試環(huán)境。 Tornado包含以下三部分: 運行在宿主機和目標機上的強有力的交叉開發(fā)工具和實用程序; 文本編輯器 GNU和Diab C/C+編譯器 調試工具:Wind Shell, Browser, WindView VxSim系統(tǒng)模擬器:VxWorks提供的在實驗與測試環(huán)境下仿真VxWorks目標機的程序,無需硬件的支持 運行在目標機上的高性能、可裁剪的實時操作系統(tǒng)VxWorks; 即為編譯生成的目標機上可執(zhí)行代碼鏡像(image),內含os 連接宿主機和目標機的多種通訊方式,

5、如:以太網(wǎng),串口線,ICE或ROM仿真器等。,8,使用Tornado創(chuàng)建工程,創(chuàng)建工程.exe WorkSpace & WorkProject 每一個工程都需要有一個WorkSpace來保存一些相關的環(huán)境變量; Bootable Vs Downable: 前者表明建立一個新的VxWorks操作系統(tǒng),該工程是基于某個BSP生成的鏡像,它包含了必須的VxWorks的內核、組件以及BSP,并且應用程序可以靜態(tài)包含在工程中,也可以靜態(tài)鏈接已編譯好的應用工程模塊。開發(fā)者可以根據(jù)自己的需求進行適當?shù)呐渲?,添加、刪除VxWorks的組件,設置所選組件的運行參數(shù)等。 后者顧名思義,應用模塊可以以靜態(tài)鏈接的方式

6、編譯至VxWorks鏡像工程中,還可以在VxWorks運行之后,通過網(wǎng)絡將將應用模塊(.out格式)下載到目標板,并與VxWorks鏡像進行鏈接。在單獨對某個模塊進行調試時,我們常常會用到這種動態(tài)鏈接的方法。,9,VxSim的HelloWorld(一),10,VxSim的HelloWorld(二),選擇 A BSP(板級支持包)在下拉菜單中選擇simpc 打開文件usrAppInit.c(它的函數(shù)usrAppInit是應用的入口點),添加Hello World打印語句,保存文件。,11,VxSim的HelloWorld(三),12,VxSim的HelloWorld(四),最后:查看新彈出的對話

7、框(VxWorks Simulator),_ ,可以看到輸出的Hello World 此時,還會彈出了一個VxSim Launch的界面,這是主機用來連接目標機的。點擊OK。如果正確安裝Tornado并配置正確的話,此時桌面右下角會出現(xiàn) 的圖標(如果出現(xiàn)問題,會出現(xiàn) 的圖標),點擊它可以看到Target Server是否正常工作。,13,Tornado工具,CrossWind: 源程序(C 或 C+ 以及匯編程序等)的調試工具 Browser: 可對系統(tǒng)對象(任務、消息隊列、信號量等)和存儲 器使用情況進行觀察的瀏覽器。 可以方便地監(jiān)視用戶的 目標系統(tǒng)。 Browser匯總了應用進程,內存消耗

8、和一個目 標內存的映射。通過 Browser,用戶可以觀察信號量、 消息隊列、內存分配、看門狗計時器、堆棧使用情況、 目標 CPU使用率、對象模塊結構和符號表以及每個任務的詳細信息。 WindShell: 提供從宿主機到目標機之間的一個命令 shell。 允許用戶調用內存中的應用程序模塊或是 VxWorks模塊中的任何例程。 WindView: 非常出色的系統(tǒng)可視診斷和分析工具。可非常容易地觀察各任務,中斷程序之間的相互作用。 VxSim: 快速原型仿真器??稍谟布O備未完成之前,在宿主機上對應用程序進行仿真分析。,14,VxWorks程序設計,任務(Task) 在VxWorks中,任務是一段

9、獨立運行的程序,類似于Linux中的進程。 從系統(tǒng)的角度看,任務是競爭系統(tǒng)資源的最小運行單元。任務可以使用或等待CPU、I/O設備及內存空間等系統(tǒng)資源,并獨立于其他任務。 VxWorks實時內核Wind提供了基本的多任務環(huán)境,因此當系統(tǒng)運行多個任務時,從表面上看多個任務正在同時執(zhí)行,而實際上系統(tǒng)內核是根據(jù)某一調度策略讓它們交替運行。 系統(tǒng)調度器使用任務控制塊(TCB)的數(shù)據(jù)結構來管理任務調度功能。每一個任務都與一個TCB關聯(lián)。TCB包括了任務的當前狀態(tài)、優(yōu)先級、要等待的事件或資源、任務碼的起始地址、初始堆棧指針等信息。 任務編程:任務創(chuàng)建taskSpawn、任務刪除taskDelete、任務控

10、制taskSuspend/taskDelay等 WindShell 允許用戶調用內存中的應用程序模塊或是 VxWorks模塊中的任何例程,15,創(chuàng)建任務,在usrAppInit函數(shù)中添加函數(shù)userMain( ),作為自己應用程序的入口函數(shù)。 編寫一個C文件(uesr.c),內容如下:,16,編譯代碼及運行,選擇Add Files,添加uesr.c到工程中: 編譯并啟動:,17,啟動Wind Shell,在Launch工具欄 中選擇 ,這時候就可以看到shell的界面: 輸入i命令,回車,即可以查看到我們起的任務tTick的有關信息:,18,Wind Shell常用命令,i:顯示所有的任務信息

11、 Tt():顯示一個任務的函數(shù)棧的調用狀態(tài) Ti():顯示一個任務的tcb信息 Sp():啟動一個任務 Ts():掛起一個任務 Tr():恢復一個任務 Td():刪除某個任務 memShow:顯示系統(tǒng)內存信息 checkStack:查看指定或所有任務的堆棧大小和使用率,19,Tornado中Host與target通信,Target Server以進程的形式(tgtsvr.exe)運行在Windows主機上,而Target Agent則以VxWorks的一個任務(tWdbTask)運行在目標機上,兩者通常使用網(wǎng)絡進行通訊,但也可以使用其他通訊方式。 Target Serve與Target Age

12、nt間使用WDB(Wind Debug)協(xié)議進行通信,這就好比一座橋梁,將目標機與主機上的Tornado開發(fā)工具聯(lián)系在一起。,20,開發(fā)板開發(fā)嵌入式程序,操作系統(tǒng)的制作與下載 修改Config.h 制作BSP及bootrom 制作操作系統(tǒng) 配置FTP Server 啟動超級終端 引導和下載操作系統(tǒng) 應用程序的編制和調試,21,操作系統(tǒng)的制作與下載,修改Config.h VxWorks的缺省配置參數(shù)由tornadotargetconfigall目錄中的configAll.h決定,如第528行開始通信路徑的配置 對于某一目標板特定的配置參數(shù),如ads860,使用tornadotargetconfi

13、g下相應目錄中的config.h,下面以ads860板為例 如果沒有相應目錄,可定制,如建立8240目錄,其文件代碼由BSP開發(fā)人員編寫,22,操作系統(tǒng)的制作與下載,修改Config.h config.h首先定義BSP版本,然后include configAll.h 缺省下載調試口為10M網(wǎng)口,對應代碼為 #undef FADS_860T 如改用100M網(wǎng)口下載調試,將該行改為 #define FADS_860T,23,操作系統(tǒng)的制作與下載,修改Config.h 10M網(wǎng)口使用cpm(0,0), 100M網(wǎng)口使用motfec(0,0) host:后跟VxWorks操作系統(tǒng)在主機的存放路徑,h指

14、主機IP地址,e指目標板IP地址,u指用戶名,pwd指密碼 實例:使用10M網(wǎng)口,VxWorks在主機D:,主機地址,目標板地址,賬號及密碼均為tornado,其代碼為: “cpm(0,0)host:d:/vxWorks h= e= u=tornado pwd=tornado”,24,操作系統(tǒng)的制作與下載,修改Config.h 如采用串口調試,可增加下列代碼 #undef WDB_COMM_TYPE #define WDB_COMM_TYPE WDB_COMM_SERIAL #undef WDB_TTY_CHA

15、NNEL #define WDB_TTY_CHANNEL 0 #undef CONSOLE_BAUD_RATE #define CONSOLE_BAUD_RATE 115200 #undef WDB_TTY_DEV_NAME #define WDB_TTY_DEV_NAME /tyCo/0 #undef WDB_TTY_BAUD #define WDB_TTY_BAUD 115200 /* default baud rate */,25,操作系統(tǒng)的制作與下載,Build bootrom 修改BSP后,應生成對應的bootrom 在Tornado中選Build-Build Boot ROM BS

16、P可選擇ads860 Image一般選擇bootrom.hex,仿真時選擇bootrom_uncmp,26,操作系統(tǒng)的制作與下載,燒制bootrom 目的:將build成功的bootrom 燒制到Flash中 FADS860板通過配套的ADI卡燒制 按照ADI卡相應的8bug程序中的readme,安裝ADI卡 在DOS方式下鍵入:mpc8bug x y,27,操作系統(tǒng)的制作與下載,驗證bootrom 連接主機與目標板的串口線 啟動和配置FTP Server(方法后面介紹) 選擇Tornado2-VxWorks COM1/COM2,啟動超級終端 超級終端中選文件-屬性-配置,設置正確的目標板波特

17、率 目標板上電,檢查終端是否能正確回顯,顯示參數(shù)與BSP配置是否一致,28,操作系統(tǒng)的制作與下載,創(chuàng)建操作系統(tǒng)工程 選File-New Project-Create a bootable VxWorks image 在step1鍵入Name和Location目錄,選擇Workspace 在step2選擇相應的BSP(如ads860),仿真選simpc,29,操作系統(tǒng)的制作與下載,選擇操作系統(tǒng)組件 在Workspace窗口的相應Project中,點擊VxWorks 選擇所需組件,擊右鍵,選Include添加,選Exclude刪除 例如需要使用POSIX消息隊列,可選operating syste

18、m components-POSIX components-POSIX message queue并添加 組件選擇完畢后,右擊Project,選Build vxWorks 注意有些組件必須組合使用,30,操作系統(tǒng)的制作與下載,FTP Server的配置 目標板上電后,bootrom引導初始化,啟動TFTP協(xié)議,作為Client端與主機通信,此前主機應運行FTP Server 點擊Tornado2-FTP Server 如果目標板使用匿名賬號登錄,在Security-General中,選擇Allow Anonymous 在Security-Users/rights中,選擇User Name,對于

19、新開賬號用New User配置;在Home Directory中鍵入操作系統(tǒng)所在目錄,然后點擊Done,31,操作系統(tǒng)的制作與下載,常用TFTP命令 TFTP通信建立后,在超級終端上可使用TFTP命令 p: 查看BSP預先設置的用戶參數(shù) c: 修改用戶參數(shù) :根據(jù)用戶參數(shù)下載操作系統(tǒng),32,應用程序的編制與調試,程序Project的制作 選File-New Project-Create downloadable application modules 在step1鍵入Name和Location目錄,選擇Workspace 在step2選擇相應的toolchain(如PPC860 gnu),仿真

20、選SIMNT gnu,33,應用程序的編制與調試,增刪project文件 在Workspace窗口下方點擊Files,右擊相應的Project Files,選擇Add Files,增加所需的.c文件 右擊單個.c文件,可選擇Remove來刪除,選擇Open來編輯,選擇Compile來編譯 如果編輯新文件,選File-New,確定文件類型、文件名和存放位置,添加到相應的project中;也可用其它編輯器編輯,34,增刪project文件(續(xù)) 完成.c文件的添加后,右擊Project Files,選擇Dependencies,自動添加所有的include .h文件,顯示在External Dep

21、endencies中(不顯示系統(tǒng).h文件) 注意.h文件的路徑,35,應用程序的編制與調試,路徑和宏的加入 在Workspace窗口點擊Builds,雙擊xxxgnu,選擇C/C+ compiler,可編輯所需的編譯路徑和宏;路徑用-I,如-IE:/mydirectory;宏用-D,如-DBIG_ENDIAN;中間無空格 不同選項間用空格隔開,不能使用回車鍵 路徑用UNIX格式/,不能使用DOS格式,36,應用程序的編制與調試,.o庫的加入 在xxxgnu窗口中選Macros,在Macros下拉菜單中選PRJ_LIBS,在Value欄鍵入.o文件及其絕對路徑,如e:/mydirectory/m

22、y.o,然后點擊Add/Set按鈕,再點擊Apply即可 路徑同樣使用UNIX格式/,37,應用程序的編制與調試,Build應用程序 在代碼編輯完成后,右擊Project Files,選擇Build或ReBuild All,可對Project進行編譯、鏈接,生成.out文件 在Build Output窗口中,Tornado會顯示錯誤/警告信息,此時修改代碼,重新Build,直至出現(xiàn)Done,38,調試應用程序的步驟 連接主機與目標板之間的串口線和網(wǎng)線 配置和啟動FTP Server 配置和啟動超級終端 目標板上電,下載操作系統(tǒng) 配置和啟動Target Server 下載應用程序.out文件 啟

23、動Shell,運行程序 啟動Debugger調試,39,應用程序的編制與調試,Target Server的配置和啟動 選擇Tools-Target Server-Configure,選擇相應的Target Server,點擊New可添加1個新的Configuration,自行定義Target Server名稱(可選),鍵入目標板IP Address(必選) 在Target Server Properties下拉菜單中選Back End,網(wǎng)口調試時在Available Back窗口選wdbrpc,串口調試選wdbserial 在Target Server Properties下拉菜單中選Core

24、 File and Symbols,選中File,在該欄鍵入操作系統(tǒng)路徑及名稱,如e:vxworks1,40,應用程序的編制與調試,Target Server的配置和啟動(續(xù)) 當程序下載太慢時,可在Target Server Properties下拉菜單中選Memory Cache Size,選中Specify,鍵入字節(jié)數(shù),如4096(K Byte) 配置完畢后,點擊OK時保存配置,點擊Launch時直接啟動Target Server 當Target Server啟動成功后,在Tornado主窗口下拉菜單中選定Target,41,應用程序的編制與調試,下載應用程序 右擊Project Files,選Download,下載Workspace中的應用程序 如果選Unload,撤銷下載的應用程序 如果只有.out文件,而無project及源代碼,在主窗口點擊Download object file or boot image,選擇相應文件下載 在主窗口點擊Launch Shell,啟動Shell,42,應用程序的編制與調試,常用Shell命令 在Shell窗口鍵入help,可查看外部Shell命令 i 查看已運行的所有任務的TCB, tXxxTask為系統(tǒng)任務 sp

溫馨提示

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

最新文檔

評論

0/150

提交評論