


摘 要:針對Pentium處理器目標機上VxWorks操作系統(tǒng)的研發(fā),BSP和設備驅動程序的設計是一個關鍵環(huán)節(jié)和難點。文章對BSP和驅動程序設計中的理論和關鍵技術進行了分析研究,應用風河公司開發(fā)的Tornado集成開發(fā)環(huán)境,設計了VxWorks下的BSP。在此基礎上,開發(fā)完成基于VxWorks和Pentium處理器的通用開發(fā)平臺。
關鍵詞:VxWorks;BSP;Tornado
1 概述
作為一種高性能嵌入式實時操作系統(tǒng)(RTOS),其持續(xù)發(fā)展能力好,內核性能高、用戶開發(fā)環(huán)境友好,具有良好的可靠性和卓越的實時性,被廣泛應用在通信、軍事、航空、航天等實時性要求極高的領域中。嵌入式實時操作系統(tǒng)VxWorks在上述領域中正發(fā)揮著越來越重要的作用,甚至會影響到整個產品的性能指標。
2 BSP組成及作用
BSP(Board Support Package,——板級支持包)是嵌入式系統(tǒng)開發(fā)過程中根據(jù)分層設計思想,將系統(tǒng)中與硬件直接相關的一層軟件獨立出來。屏蔽硬件提供操作系統(tǒng)的驅動及硬件驅動,是BSP的主要功能。BSP和設備驅動程序是嵌入式系統(tǒng)的研發(fā)過程中的關鍵環(huán)節(jié),其質量直接影響到整個系統(tǒng)的穩(wěn)定性和可靠性。
BSP主要由與主板相關的網口、串口等初始化代碼和硬件驅動程序兩部分組成。
BSP初始化主要是設備從加電開始,對CPU相關的寄存器、I/O口、網絡口、系統(tǒng)數(shù)據(jù)等進行初始化。
以PMI2開發(fā)板為例,BSP主要作用包括:
(1)PMI2主板硬件初始化,主要對Intel Pentium的初始化,對整個設備提供底層硬件支持。
(2)為操作系統(tǒng)提供PMI2主板底層驅動程序和系統(tǒng)中斷服務程序。
(3)操作系統(tǒng)的功能可以定制,為軟件系統(tǒng)提供一個實時多任務的運行環(huán)境。
3 基于Pentium處理器BSP開發(fā)環(huán)境及設計
3.1 PMI2主板硬件配置說明
開發(fā)環(huán)境及開發(fā)工具:開發(fā)板使用盛博科技PMI2主板,硬件配置為256M內存、1.6GHz單核Itel Pentium CPU、VGA控制器、100/1000M網絡控制器、Intel82559網卡,開發(fā)軟件為Tornado2.2,主機安裝目錄為“C:\ Tornado2.2\”。
3.2 開發(fā)環(huán)境
開發(fā)調試環(huán)境為Tornado2.2,是風河公司研制的,它包含三部分:
(1)開發(fā)工具和實用程序。
(2)運行在PMI2主板CF卡上的實時操作系統(tǒng)VxWorks。
(3)連接顯控軟件和PMI2主板通信設備的多種通訊方式,如網絡,串口等。
Tornado2.2開發(fā)軟件如圖1所示:
3.3 設計目標
在Pentium處理器上使用帶有標準板級支持包的Tornado2.2軟件,開發(fā)出滿足主板硬件資源驅動的BSP:(1)支持Pentium處理器。(2)支持ICH4內建雙通道IDE硬盤。(3)支持ICH4集成的以太網控制器。(4)支持USB2.0鍵盤、鼠標。(5)支持CRT和單雙通道LVDS。
BSP開發(fā)需要熟悉并掌握VxWorks映像種類,系統(tǒng)的啟動順序和過程,以及BSP軟件包中各文件的功能、組成以及相應的文件設置。
其中BSP與VxWorks關系如圖2所示:
4 BSP設計過程
BSP設計是整個嵌入式系統(tǒng)開發(fā)的前期,作為系統(tǒng)內應用程序正常運行的保證。結合實際中的工程,對Pentium處理器目標板BSP的設計與開發(fā)可以分為五個步驟。
4.1 建立開發(fā)環(huán)境
實時嵌入式操作系統(tǒng)在調試環(huán)境上與桌面操作系統(tǒng)存在明顯的區(qū)別,它具有一套強有力的交叉開發(fā)工具,被稱為交叉調試,并且Tornado2.2開發(fā)環(huán)境是基于架構的,所以采用主機和目標機交叉開發(fā),通訊方式采用以太網通訊。
Pentium處理器目標板配置有單雙通道LVDS接口,以及相應的網口、串口接口,可以通過它對硬件進行調試,同時也將bootrom映像燒入到主板上的8G CF卡中。由此建立起硬件和軟件的開發(fā)環(huán)境。
開發(fā)平臺結構如圖3所示:
4.2 基于PMI2主板BSP開發(fā)包的選擇
BSP的開發(fā)是銜接系統(tǒng)硬件與軟件的重要環(huán)節(jié),開發(fā)模板的選擇尤為重要。選擇與開發(fā)板相近的BSP開發(fā)包可以大大減少開發(fā)周期。
對Pentium處理器開發(fā)板進行BSP設計時,首先選擇一個與該板卡處理器型號相近的BSP 包(pcPentium開發(fā)包),如圖4所示。然后根據(jù)PMI2主板板卡外圍器件進行修改或添加代碼,滿足項目的應用,這樣可以起到事半功倍的效果。
具體操作步驟如下:
打開C:\Tornado2.2\target\config\下的pcPentium文件夾,改名為PMI2。
復制C:\Tornado2.2\target\config\All 全部文件到目錄PMI2中。
PMI2文件中包含了所有頭文件和開發(fā)板的特殊定義,在此基礎上對開發(fā)板的硬件資源進行設置,修改啟動命令行CPU = = PENTIUM定義如下:
#define DEFAULT_BOOT_LINE \"ata = 0,0(0,0) fwq:D/jgzc/ata0/jgzcsb h=100.10.6.1 e=100.10.6.4 u=zy pw=nihao tn=jggj o=fei\"
其意義是:
使用第0個ata控制器和第0個驅動; 主機名稱為fwq;
VxWorks映象下載的完整路徑是D/jgzc/ata0/jgzcsb;
主機IP為100.10.6.1; 目標機IP為100.10.6.4;
下載VxWorks映象的FTP服務器的用戶名為zy;
FTP密碼為nihao; 目標機名稱為jggj;
通過網口(fei,Intel82559芯片控制)使用WDB(WindDebug)協(xié)議。
4.3 BootRom的運行
BootRom類型映像是一個最小化、專用的jgzcsb引導映像, 實現(xiàn)最少的系統(tǒng)初始化(如網口、多串口等),主要用于啟動裝載jgzcsb映像,其功能類似于PC機的BIOS。
本項目在BootRom啟動時,完成初始化CPU、堆棧指針、寄存器,清理內存,屏蔽中斷、CACHE;實現(xiàn)地址的映射搬家。在啟動后,完成多任務環(huán)境建立, 包括usrRoot任務、網絡任務、多串口任務和FTP任務等。引導映像在8G CF卡中執(zhí)行(駐留型引導映像),為下一步加載VxWorks映像做準備,系統(tǒng)中其對應的編譯規(guī)則文rules.bsp。
BootRom運行時,調用的系統(tǒng)函數(shù)流程如圖5所示:
4.4 VxWorks的配置及啟動
VxWorks類型映像是系統(tǒng)的主映像,它由一個體積很小的內核及一些可以根據(jù)需要定制的系統(tǒng)模塊組成,是真正運行于目標板上的操作系統(tǒng)。在風河公司提供的集成開發(fā)環(huán)境Tornado2.2中,用戶可以方便地對系統(tǒng)進行裁剪。
依據(jù)可裁剪性特點,項目根據(jù)實際需要對VxWorks進行了最優(yōu)配置,刪除了圖形顯示、TrueFFS設備等模塊,增加了Ftp、定時器、網絡系統(tǒng)模塊,如圖6所示。通過BootRom引導映像加載VxWorks應用,并跳轉到VxWorks的入口函數(shù)SysInit(),執(zhí)行應用程序,運行于VxWorks系統(tǒng)之上。
本項目VxWorks系統(tǒng)啟動過程如表1所示:
4.5 測試與驗證
作為與硬件緊密結合的軟件模塊,對BSP進行充分的單元測試和集成測試是開發(fā)成功的保證。
在項目中,開發(fā)BSP模塊的網絡驅動程序時,由于實時操作系統(tǒng)沒有提供Itel82559網卡驅動源代碼,為了確保整個系統(tǒng)的穩(wěn)定運行,系統(tǒng)對網絡展開了如下的測試:
(1)進行網絡協(xié)議棧與網絡驅動程序的集成功能測試,確保網絡驅動程序的功能正確。
(2)全面測試運行在該網絡接口上各種網絡協(xié)議,如ICMP、TCP等。
5 結束語
在介紹BSP的基本概念和作用的基礎上,重點介紹了VxWorks 實時操作系統(tǒng)的BSP設計的具體步驟以及需要注意的問題。文章以盛博科技PMI2開發(fā)板為例,分析了基于VxWorks的BSP, 并實現(xiàn)了在實際工程中的應用。然而入式設計的難點在于,針對不同的CPU板, 需根據(jù)具體的硬件板進行具體設計。
參考文獻
[1] WindRiver System Inc. VxWorks BSP Developer's Guide 5.5[M].2002.
[2]周伯平,張楊,吳瓊.VxWorks下設備驅動程序及BSP開發(fā)指南[M].北京:中國電力出版社,2004.