68 VxWorks實時操作系統下BSP %A VxWorks實時操作系統下BSP %A 丁大尉 煙臺大學 王金剛 宮霄霖 姜 平 天津大學 %A 摘要文中介紹實時操作系統V Works中BSP的概念,以及開發BSP必須要了解的交叉調試環境、系統的啟動過 %A 程、V works Image的分類以及BSP文件的組成等內容。 %A 關鍵詞 VxWorks lISP %A The Concept of BSP in VxWorks %A DiI1g Dawei Wang Jingang Gong Xiaolin Jiang Ping %A Abstract In this paper,the concept of BSP in VxWorks,a real―time operating system are presented. It also described %A the cross debug environment,the boot process of the system,the sorts of VxWorks Image and the composition of BSP files. %A Keywords VxWorks BSP %A 1 BSP %A Vxworks操作系統是一種嵌入式實時操作系 %A 統(RTOS),它采用微內核的結構,可以運行于 %A 目前幾乎所有的CPU 上,包括intel x86、Power %A PC、ARM、MIPS等, 但前提是必須有相應的 %A BSP (板極支持包)支持。BSP包含了與硬件相關 %A 的功能函數,提供Vxworks與硬件之間的接口, %A 但是BSP不等同于硬件驅動。 %A BSP主要完成硬件初始化,包括系統上電時 %A 在特定位置提供人口代碼,初始化存儲器,關中 %A 斷,把VxWorks加載到RAM 區等; 支持Vx― %A Works與硬件驅動的通信。有些硬件驅動是需要 %A 。BSP支持的,例如硬件驅動定義它的中斷服務例 %A 程(ISR),由BSP來將此ISR連接到中斷向量表; %A 將獨立與硬件的軟件和與硬件相關的軟件在Vx― %A Works系統中很好地結合起來。 %A 2 BSP開發 %A 做BSP開發,應首先建立Tornado開發環境, %A 根據具體情況配置VxWorks組件;接著選擇合適 %A 的BSP模板,對相應的文件進行修改;最后添加 %A 自己的設備驅動程序,進行仿真和調試。 %A Tornado 2.2交叉調試環境嵌入式操作系統 %A 在調試環境上與桌面操作系統存在明顯的區別,它 %A 又稱為交叉調試。因為Tornado開發環境是基于 %A 架構的,所以選擇的時候要根據自己的處理器內核 %A 選擇合適的版本。因為我們使用的處理器 %A S3CA510B采用的是ARM 核, 所以我們選用Tor― %A nado2.2 for ARM ,這就保證了使用的開發環境里 %A 包括了需要的開發工具以及同類的BSP參考模板。 %A ? /target/eonfig/all/eonfigAl1.h中包含所有 %A 的VxWorks組件選項, 可以在32程中對這些組件 %A 進行添加或者刪除。 %A 選擇BSP模板并對相應文件進行修改 Vx- %A Works的板級支持包BSP提供了Vxworks同硬件 %A 環境的基本接口界面,支持對硬件驅動的訪問,將 %A Vxworks中硬件相關和硬件無關的軟件集成到一 %A 體,其功能相當于PC機的BIOS。它包括源文件、 %A 頭文件、make文件、導出文件和二進制的驅動模 %A 塊。 %A BSP主要由C源文件和匯編文件組成,BSP %A 的開發可以從WindRiver公司提供的BSP模板開 %A 始,在此基礎上作相應的修改。主要需要做以下幾 %A 個方面的修改: %A ① eonfig.h %A VxWorks的缺省配置由eonfigAl1.h確定, 用 %A 戶需要按照自己的需要來改寫eonfig.h,如設置存 %A 儲區的大小、增加新的程序模塊、刪除不需要的模 %A 塊等。 %A ② makefile %A 它控制生成VxWorks的映像文件的類型,另 %A 外它還包含存儲區大小的信息。所有新增加的程序 %A 模塊必須在makefile中使用MACH ―EXTRA 命 %A 令將其目標模塊加入到最終的VxWorks映像文件 %A 中。 %A ③ 編制專用接口驅動程序 %A VxWorks的缺省配置提供了通用接口的驅動 %A 程序,但是并不一定適合用戶具體的硬件環境,所 %A 以用戶需要使用ar-d命令將這些模塊從庫文件中 %A 刪除,然后將其源程序復制到用戶的BSP 目錄中 %A 進行修改,并在makefile中使用MACH―EXTRA %A 命令將其目標模塊加入到最終的Vxworks映像文 %A 件中。 %A 維普資訊http://www.cqvip.com %A 皇 量技術?2005年第一期 69 %A VxWorks Image的分類 VxWorks Image可 %A 以分為三類:ROM-based Image(壓縮或非壓縮); %A ROM -Resident Image; Loadable Image %A 。 %A VxWorks Image由Text段、Data段和BSS %A 段組成,Text段是可執行代碼段,Data是已初始 %A 化的全局變量和靜態變量,BSS段是未初始化全局 %A 變量和靜態變量。 %A 對于不同的Vxworks Image,啟動步驟也不 %A 一樣。但對于三種Image,第一步是相同的,都是 %A 處理器跳到某一特定地址, 開始執行啟動代碼 %A (BootStrap)。它們都完成相同的功能:關閉中斷, %A 初始化目標存儲器,裝載要運行的VxWorks Im― %A age段到RAM 中。 %A RoM―Resident Image與ROM-based Image兩 %A 種Image都是用于產品階段, 即直接燒錄到ROM %A 中。在開發調試階段, 這兩種Image由于需要頻 %A 繁的燒寫RoM 所以非常不方便。 %A Loadable %A Image 是位 %A 于主機上的 %A 二進制文件, %A 由燒錄在目 %A 標板RoM %A 中的boot― %A RoM Image %A LoCAL MEM %A LoCAL ADRS %A RAM LOW %A ADRS %A FREE RAM %A ADRS %A RAM HIGH %A ADRS %A 將其從主機 %A 下載到目標 圖1 Loadable Image的下載過程 %A 板的RAM %A 中。實際上,boot―RoM Image是一個高度裁減的 %A 最小Vxworks系統,它的唯一作用就是實現目標 %A 機與主機通信,將位于主機硬盤上的loadable Im― %A age下載到目標板RAM 中, 執行情況如圖1。首 %A 先執行BootStrap,Bo otStrap完成最基本的硬件初 %A 始化工作, 并將boot―RoM Image拷貝到RAM ― %A H IGH %A ― ADRS處開始執行,把主機上指定位置的 %A Loadable Image下載到RAM ―LOW ―ADRS處, %A 然后由此Image來接管目標板,Bo ot Program 已 %A 完成使命,它所占用的RAM 區由系統回收,作為 %A 系統內存池的一部分。另外,boot―RoM Image也 %A 可以是壓縮的, 在拷貝到RAM ―HIGH ―ADRS %A 時進行解壓;也可以駐留在ROM 中執行,而只將 %A 它的Data段和BSS段拷貝到RAM ―HIGH ― %A ADRS處。 %A 系統啟動順序 對于ROM-based Image和 %A ROM-Resident Image,其啟動順序如下: %A rom Init () 一rom Start () 一sysInit () %A usrInit () ._+Kernellnit (usrRoot, ? ? ) %A 各函數的作用如下: %A romInit():關閉中斷, 做盡量少的硬件初始 %A 化,使C程序得以運行。 %A romStart(): 將Vxworks Image拷貝到 %A RAM 中,如果需要則進行解壓縮;如果是ROMResident %A Image, 則只拷貝Data段和BSS段。 %A sysInit():初始化系統中斷, 即把所有寄存 %A 器置為已知狀態, 并清除所有中斷。 %A usrInit():在文件usrConfig.c中,完成系統 %A 內核運行前需要完成的所有初始化,包括初始化 %A cache、BsS段清零、初始化中斷向量等。 %A Kernellnit():初始化并啟動多任務內核,開 %A 中斷,創建一個根任務usrRoot。 %A usrRoot(): 初始化I/O 系統,初始化系統時 %A 鐘,創建設備,安裝驅動,初始化網絡,調用用戶 %A 應用程序。 %A 驅動程序的開發 與BSP開發工具包一起發 %A 布的軟件中包含了各種類型驅動程序的模板,這些 %A 模板提供了所有驅動程序共用的邏輯結構,設計驅 %A 動程序時一般應該按照從上到下的順序。在完成對 %A 驅動程序的計劃,以及初步形成了由函數和數據結 %A 構構成的骨架之后, 就可以開始準備執行和測試 %A 了。這部分工作比較復雜,主要包括編寫代碼,測 %A 試、調試、重新編譯和性能測試等幾個步驟,請讀 %A 者參見參考資料l_1]。 %A 參考資料 %A 1 W ind River Systems, Inc. VxWorks BSP Developer s %A Guide,5.5,Edition 1,DOC-14695一ND-00,U & A %A 2002. %A 2 Wind River Systems, Inc. VxWorks Programmer’s %A Guide,5.5,Ed ition 1,1:)O(2-14617一ZD00,U. & A %A 2002. %A 3 陳翌,田 捷,王金剛.嵌入式軟件開發技術.北 %A 京:國防工業出版社,2003 %A 。爭‘奪 爭 奪 奪 奪‘奪 奪 奪‘奪 奪‘奪’奪 奪 奪 奪 奪 奪’奪 奪 %A . %A 矗 侖 %A 妾 降低數據采集的成本 蕁 %A 立 毒 %A 羔 通過推出M系列DAQ產品,NI公司不每 %A 寸斷在擴展數據采集功能的同時降低設備的成jc %A 乏本。實際上,盡管M系列產品增強了I/O的奪 %A 功能,不過同時每個I/0通道的成本也降低jc %A 喜了30 9/6。M系列產品采用了以前DAQ產品÷ %A 寧所不具備的NI-STC 2,NI―MCal和NI―PGIA X %A 毒技術,它還能和NI LabVIEW 和NI―DAQmx々 %A 寧測量服務軟件無縫地集成,從而具有更好的性 %A 毒能、更高的價值并提供更多的I/0。 %A . 奪.奪.奪.奪.奪.奪.奪.奪.奪.奪.奪.奪.爭.爭.奪.奪.奪.奪.爭.{-.{-.???啼一.奪t} %A 維普資訊http://www.cqvip.com |